Cách sử dụng Framework PHP miễn phí béo
Lý lịch
Fat Free Framework là một vi khuôn khổ PHP được bắt đầu vào năm 2009 bởi Bong Cosca. Theo cách tiếp cận tối giản, nó có xu hướng tránh thêm mã và cấu trúc không thực sự cần thiết, trong khi tập trung vào những gì thực sự quan trọng.
Tại sao lại là một micro-framework ?
Kiểu thiết kế tối giản này là phổ biến trong số các micro-framework , trong đó PHP cung cấp nhiều lựa chọn. Các micro-framework phổ biến khác là: Slim (PHP), Sinatra (Ruby) và express.js (node.js). Các khuôn khổ này thường có một số ưu điểm như:
Cực kỳ nhẹ (Fat Free chỉ có số lượng khoảng 55kb)
Có một đường cong học tập nhẹ nhàng, cho phép các nhà phát triển gần như chỉ tập trung vào những gì quan trọng bằng cách không phải thay đổi phong cách viết mã của họ.
Cung cấp nhiều chức năng mà các khuôn khổ hoàn chỉnh, hoàn thiện thường có.
Không cần phải nói rằng lựa chọn một micro-framework như Fat Free không phải lúc nào cũng là lựa chọn tốt nhất. Đối với các dự án lớn mà dự kiến sẽ có một group người, một khuôn khổ có cấu trúc và kiên định hơn như Yii hoặc Zend có thể sẽ là lựa chọn tốt hơn.
Cài đặt một dự án mới với Fat Free
Các bước đầu tiên: download khung extract file trong folder root của dự án của bạn.
Fat Free chỉ chạy trên PHP 5.3 trở lên. Nếu bạn không chắc chắn về version mà bạn hiện đang sử dụng, bạn có thể kiểm tra bằng lệnh :
/path/to/php -v
Sau khi đã cài đặt rằng môi trường mà bạn đang phát triển là môi trường phù hợp, hãy tạo một file có tên là index.php
, index.php
này sẽ là file bootstrap dự án của bạn. Trên dòng đầu tiên, bao gồm Fat Free:
// FatFree framework
$f3 = require ("fatfree/lib/base.php");
Sau đó, bạn sẽ phải thông báo cho ứng dụng của bạn biết bạn đang trong giai đoạn phát triển hay đang ở chế độ production bằng cách đặt biến này:
// Set to 1 when in development mode, otherwise set to 0
$f3->set('DEBUG', 1);
Database
Và tất nhiên, bạn sẽ phải cài đặt kết nối database . Giả sử bạn đang sử dụng MySQL:
// MySql settings
$f3->set('DB', new DB\SQL(
'mysql:host=localhost;port=3306;dbname=mydatabase',
'dbuser',
'dbpassword'
));
Hoặc, nếu bạn muốn sử dụng SQLite:
$db=new DB\SQL('sqlite:/var/www/myproject/db/database.sqlite'));
Truy vấn
Một truy vấn đơn giản có thể được gọi bằng lệnh :
$result = $db->exec('SELECT field FROM table WHERE id = "1"');
Hoặc, nếu thích, bạn có thể sử dụng ORM tích hợp của Fat Free. Truy vấn ở trên sẽ trở thành thông tin như thế này:
$table = new DB\SQL\Mapper($db, 'table');
$table->load(array('id=?', '1'));
$result = $table->field;
Với hàm DB\SQL\Mapper
, về cơ bản bạn đang "ánh xạ" một bảng đã có trong database của bạn . Thay vào đó, nếu bạn cần thêm một bản ghi mới trong bảng của bạn , bạn sẽ phải nhập:
$table = new DB\SQL\Mapper($db, 'table');
$table->field = "Here is a value";
$table->save();
Lưu ý: Bạn sẽ không thể thay đổi bảng của bạn bằng ORM.
Đưa ra cấu trúc cho dự án của bạn
Vì Fat Free là một micro-framework , nó không có cấu trúc sẵn sàng để sử dụng cho dự án của bạn, do đó bạn sẽ phải tự mình tạo ra nó. Ví dụ về cấu trúc cho dự án của bạn có thể là:
- api
-- models
- css
- js
- template
- views
- index.php
Nhưng tất nhiên, bạn sẽ hoàn toàn tự do sử dụng cấu trúc mà bạn yêu thích. Đó là điều tốt nhất khi sử dụng một khuôn khổ không có ý kiến.
Tự động tải
Để tránh phải đưa tất cả các lớp vào dự án của bạn , Fat Free cho phép bạn sử dụng tính năng tự động tải , đây là một cách chỉ bao gồm các lớp vào thời điểm bạn thực sự cần chúng. Vì vậy, để gọi tất cả các lớp của ta , ta chỉ cần gõ:
$f3->set('AUTOLOAD','api/models/');
Trong trường hợp của ta , api/models/
rõ ràng sẽ là vị trí mà ta lưu tất cả các lớp Model của bạn . Khi bạn gọi một lớp (ví dụ: $myClass = new myClass()
), Fat Free sẽ tự động tìm kiếm một file được gọi theo cách tương tự ( myClass.php
) trong vị trí tự động tải.
định tuyến
Điều thú vị tiếp theo là cách Fat Free quản lý việc định tuyến ứng dụng của ta . Đây là cách ta xác định định tuyến đến trang chủ của bạn :
$f3->route('GET /',
function() {
echo 'This is my Home Page!';
}
);
Lưu ý thuộc tính GET ở đó. Nếu cần, nó có thể được thay thế bằng POST hoặc thậm chí bằng GET | POST , nếu bạn cần cả hai.
Và sau đó rõ ràng là một chức năng xác định những gì trang đó phải làm.
Tất nhiên, bạn cũng có thể quản lý các tham số khác nhau, sử dụng cú pháp này:
$f3->route('GET|POST /post/@id',
function($f3) {
echo 'Post #'.$f3->get('PARAMS.id');
}
);
Như bạn thấy , mọi thứ đứng trước @
sẽ được coi là một tham số biến.
Templating và Views
Fat Free cung cấp cho bạn khả năng có mẫu và chế độ xem của bạn. Để đưa mẫu / chế độ xem của bạn vào lệnh định tuyến, chỉ cần viết:
$f3->route('GET /',
function($f3) {
// Instantiates a View object
$view = new View;
// Header template
echo $view->render('template/header.php');
// This is a variable that we want to pass to the view
$f3->set('name','value');
// Page view
echo $view->render('views/index.php');
// Footer template
echo $view->render('template/footer.php');
}
);
Để cài đặt các biến được chuyển đến một dạng xem, bạn có thể sử dụng hàm $f3->set('nameVariable', 'value')
, rồi gọi cùng một biến đó vào dạng xem (ví dụ: views/index.php
) bằng lệnh `<? php echo $ nameVariable; ?>. Nó thực sự đơn giản.
Tóm lại, đây có lẽ là những tính năng hữu ích nhất mà bạn cần khi phát triển ứng dụng đầu tiên của bạn với Fat Free framework. Nếu bạn cần thêm chúng, bạn luôn có thể tham khảo tài liệu chính thức .
<div class = “author”> Gửi bởi: <a
href = “http://www.marcotroisi.com/”> Marco Troisi </a> </div>
Các tin liên quan
Cách tự động hóa quy trình triển khai ứng dụng PHP bằng Capistrano trên Ubuntu 132014-02-26
Cách triển khai ứng dụng Kohana PHP trên VPS Debian 7 / Ubuntu 13 với Nginx và PHP-FPM
2013-12-30
Cách cài đặt và thiết lập Kohana, Khung phát triển ứng dụng web PHP
2013-12-30
Cách tùy chỉnh MediaWiki bằng tệp LocalSettings.php
2013-09-16
Bắt đầu với Yii PHP Framework - Phần 2
2013-08-12
Cách lưu trữ các phiên PHP trong Memcached trên CentOS VPS
2013-08-05
Cách sử dụng Gmail hoặc Yahoo với chức năng PHP mail ()
2013-08-02
Cách tạo plugin Nagios với PHP trên Ubuntu 12.10
2013-04-29
Cách tạo plugin Nagios với PHP trên CentOS 6
2013-04-29