Hướng dẫn tạo và chạy dự án Fatfree Framework - F3 cho người mới bắt đầu
Tôi đã tìm thấy Fat-Free Framework. Nó được gói gọn trong một tệp 50KB và có rất nhiều tính năng. Bạn có thể tìm hiểu về chúng trên trang web, nên tôi sẽ không lặp lại ở đây. Thay vào đó, tôi đã tái tạo hướng dẫn Slim để tạo một trang blog đơn giản, nhưng sử dụng Fat-Free Framework.
Bạn sẽ cần PHP 5.3 trên máy chủ của mình. Tôi đã sử dụng Ubuntu 12.04 cho hướng dẫn này vì phiên bản PHP đó dễ cài đặt.
Bước 1: Cài đặt Tải xuống Fat-Free Framework (F3) từ trang web. F3 hoạt động tốt cả trong thư mục gốc của trang web và từ một thư mục con. Tôi sẽ giả định rằng bạn đang sử dụng một trang web trống để thực hiện hướng dẫn này. Giải nén nội dung tải về và sao chép vào thư mục gốc của trang web.
Chuyển lên một cấp trong cấu trúc thư mục và đặt quyền:
sudo chgrp -R www-data blog
sudo chmod -R 775 blog
cd blog
sudo chmod -R 777 tmp
Nếu sử dụng Apache, mod_rewrite sẽ cần được kích hoạt.
Bước 2: Khởi động Vì mọi thứ cần thiết đã có trong F3 nên bạn không cần làm gì ở đây! Bạn có thể dọn dẹp trang web để xóa trang chính hiện tại và thêm kết nối cơ sở dữ liệu. Chỉnh sửa index.php
và xóa hai hàm route – chúng chỉ được sử dụng để hiển thị trang chào mừng và tài liệu.
Để thiết lập kết nối cơ sở dữ liệu, thêm đoạn mã sau giữa các lệnh set và run:
$f3->set('DB',
new DB\SQL(
'mysql:host=localhost;port=3306;dbname=YourDatabaseName',
'YourUserName',
'YourPassword'
)
);
Tất cả các tệp Giao diện Người dùng sẽ được đặt trong thư mục ui.
Bước 3: Định tuyến Tương tự như Slim, bạn cần chỉ định phương thức yêu cầu định tuyến (GET, POST, PUT, v.v.), URI để phản hồi và cách phản hồi.
Ví dụ về định tuyến trang chính:
$f3->route('GET /',
function ($f3) {
// làm gì đó
}
);
Bước 4: Mô hình Các ORM trong Fat-Free Framework thực hiện mọi công việc nặng nhọc cho bạn – không cần thư mục, tệp hay mã nào ở đây. Bạn có thấy việc này đơn giản hơn so với Slim không?
Bước 5: Giao diện Ứng dụng Giống như hướng dẫn Slim, chúng ta sẽ giữ cho việc này đơn giản. F3 có một tập hợp các ORM để dễ dàng và nhanh chóng làm việc với dữ liệu.
Bước 6: Giao diện Quản trị Ứng dụng Trang chính quản trị chỉ cần liệt kê các bài viết blog và cung cấp liên kết.
Bước 7: Sử dụng Middleware Điều này không liên quan đến việc sử dụng Fat-Free Framework. Xác thực cơ bản sử dụng cơ sở dữ liệu đã được tích hợp.
Bước 8: Tóm tắt Đây là một ví dụ khác về cách nhanh chóng có được một prototype sử dụng micro framework PHP. Liệu nó có nhanh hơn so với Slim? Tôi nghĩ là có, với ít mã hơn và ít phức tạp hơn.
Giấy phép Slim được phát hành dưới Giấy phép Công cộng MIT và bạn có thể tự do sử dụng, sửa đổi và thậm chí bán nó. F3 được phát hành theo Giấy phép Công cộng GNU (GPL v3).
Bạn có thể tải xuống các tệp được sử dụng từ đây: Fat-Free-Blog.zip.
Bước 9: Các Tệp Giao Diện
Để tạo giao diện cho quản trị viên, bạn cần các tệp HTML cho các trang khác nhau. Dưới đây là tệp admin_home.html
để hiển thị danh sách bài viết:
<h1>Quản Trị Blog Của Tôi</h1>
<p><a href='admin/add'>Thêm Bài Viết</a></p>
<table>
<thead>
<tr>
<th>Tiêu Đề</th>
<th>Ngày</th>
<th>Tác Giả</th>
<th colspan='2'>Hành Động</th>
</tr>
</thead>
<tbody>
<repeat group="{{ @list }}" value="{{ @item }}">
<tr>
<td>{{ @item.title }}</td>
<td>{{ @item.timestamp }}</td>
<td>{{ @item.author }}</td>
<td><a href="admin/edit/{{ @item.id }}">Chỉnh Sửa</a></td>
<td><a href="admin/delete/{{ @item.id }}">Xóa</a></td>
</tr>
</repeat>
</tbody>
</table>
Bước 10: Xử Lý Form Thêm và Chỉnh Sửa Bài Viết
Tạo tệp admin_edit.html
cho việc thêm và chỉnh sửa bài viết:
<h1>Chỉnh Sửa</h1>
<form name="blog" method="post" action="{{ @BASE }}{{ @PARAMS.0 }}" >
<label for='title'>Tiêu Đề: </label><br /><input type="text" name="title" id="title" value="{{ isset(@POST.title)?htmlspecialchars(@POST.title):'' }}" size="60"/><br />
<label for='author'>Tác Giả: </label><br /><input type="text" name="author" id="author" value="{{ isset(@POST.author)?htmlspecialchars(@POST.author):'' }}" size="60"/><br />
<label for='summary'>Tóm Tắt: </label><br /><textarea name="summary" id="summary" cols="60" rows="10">{{ isset(@POST.summary)?htmlspecialchars(@POST.summary):'' }}</textarea><br />
<label for='content'>Nội Dung: </label><br /><textarea name="content" id="content" cols="60" rows="10">{{ isset(@POST.content)?htmlspecialchars(@POST.content):'' }}</textarea><br />
<input type="submit" value="Gửi"/>
</form>
Bước 11: Xử Lý Logic Thêm và Chỉnh Sửa
Thêm các route cho việc thêm và chỉnh sửa bài viết, sử dụng cùng một tệp giao diện:
$f3->route('GET /admin/add', function($f3) {
$f3->set('html_title', 'Tạo Bài Viết Mới');
$f3->set('content', 'admin_edit.html');
echo Template::instance()->render('layout.html');
});
$f3->route('GET /admin/edit/@id', function($f3) {
$f3->set('html_title', 'Chỉnh Sửa Bài Viết');
$id = $f3->get('PARAMS.id');
$article = new DB\SQL\Mapper($f3->get('DB'), 'article');
$article->load(array('id=?', $id));
$article->copyTo('POST');
$f3->set('content', 'admin_edit.html');
echo Template::instance()->render('layout.html');
});
Bước 12: Xóa Bài Viết
Thêm chức năng xóa bài viết:
$f3->route('GET /admin/delete/@id', function($f3) {
$id = $f3->get('PARAMS.id');
$article = new DB\SQL\Mapper($f3->get('DB'), 'article');
$article->load(array('id=?', $id));
$article->erase();
$f3->reroute('/admin');
});
Bước 13: Bảo Mật Ứng Dụng
Để bảo mật trang quản trị, bạn có thể thêm xác thực cơ bản:
$user = new DB\SQL\Mapper($f3->get('DB'), 'user');
$auth = new \Auth($user, array('id' => 'name', 'pw' => 'password'));
if ($auth->basic()) {
$f3->set('SESSION.user', $_SERVER['PHP_AUTH_USER']);
} else {
$f3->error(401);
}
Trong các route quản trị, bạn cần kiểm tra xác thực:
if (!$f3->get('SESSION.user')) {
$f3->error(401);
}
Tóm tắt
Bạn đã xây dựng một ứng dụng blog đơn giản sử dụng Fat-Free Framework với đầy đủ chức năng như thêm, chỉnh sửa, xóa bài viết và quản trị người dùng. Sử dụng F3 giúp bạn giảm thiểu mã và sự phức tạp so với các framework khác.
Giấy phép
F3 được phát hành theo Giấy phép Công cộng GNU (GPL v3), bạn có thể sử dụng nó cho mục đích thương mại. Nếu bạn thấy hữu ích, hãy xem xét việc quyên góp cho dự án.
Bạn có thể tải xuống mã nguồn từ kho Bitbucket của tôi để tham khảo và phát triển thêm.
Hatonet kết nối doanh nghiệp ITO toàn cầu.
Giúp các doanh nghiệp IT Việt Nam tiết kiệm chi phí,tìm kiếm
đối tác,mở rộng mạng lưới.
- Mở rộng kênh tìm kiếm khách hàng gia tăng doanh thu.
- Tiết kiệm chi phí quan hệ tìm đối tác.
- Ứng tuyển trực tuyến bất cứ lúc nào khi có yêu cầu.
- Trực tiếp liên kết với công ty quốc tế
Liên hệ :
Email: hello@hatonet.vn
Zalo: https://zalo.me/hatonet