Nội dung
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Tất cả những nhà phát triển ứng dụng web, những người đang sử dụng framework hiện đại, giống như symfony, silex, laravel.. và bạn muốn composer hỗ trợ trong ứng dụng codeigniter của mình, tôi sẽ chỉ cho bạn những cách làm sao để tích hợp trong framework này.
Tại sao bạn nên có Composer trong Codeigniter
Composer trình quản lý thư viện cho ứng dụng web php, Composer là một giải pháp hoàn thiện, cho lập trình viên PHP để quản lý thư viện cài vào ứng dụng một cách dễ dàng. Hay gọi là dependencies ý mình là nhiều third-party open source, libraries/plugins, chuẩn PSR..
Hiện tại, để thêm thư viện third-party, cách đầu tiên là bạn sẽ tải source của thư viện và copy vào thư mục ‘application/third_party’, tạo mapper library (nếu cần) trong folder ‘application/libraries’ và nhúng thư viện bạn mới thêm bằng lệnh include trong PHP theo cách truyền thống, hoặc load tự động thông qua autoload.php, Vậy ngoài ra còn có cách nào đơn giản hơn không?
Cách cũ bạn sẽ có nhiều code thư viện trong một thư viện tổng thể bạn download được và làm cho dung lượng website tăng lên đáng kể mà không sử dụng hết thư viện đó. Nói cách khác với trợ giúp của composer, bạn có thể loại bỏ những thành phần và chỉ thêm dependency cần sử dụng trong repository, thật tuyệt vời phải không.
Cài đặt Composer
Nếu bạn chưa có, đầu tiên cài đặt composer trên hệ thống. Bạn có thể xem hướng dẫn chi tiết bắt đầu với composer. Sau đó, trên thư mục gốc của dự án thêm một file ‘composer.json’ và thêm ít nhất một dependency bạn muốn cài đặt. Ví dụ mình sử dụng monolog.
{ "require": { "monolog/monolog": "*" }, "minimum-stability": "dev" }
Và ngay tại thư mục đó, chạy lệnh ‘composer update’ trên command line tool. Nếu hoạt động OK bạn sẽ thấy thư mục vendor và file composer.lock được tạo ra. Chúc mừng bạn đã cài đặt thành công thư viện.
Cách tích hợp Composer với Codeigniter
Cách dễ nhất để thêm tất cả dependecies là chỉ cần thêm một dòng lệnh trong file index.php như thế này.
include "./vendor/autoload.php";
Và bạn đã hoàn thành!
Nó quá dễ dàng phải không, bây giờ bạn có thể sử dụng tất cả classes có trong thư mục ‘vendor’. Composer sử lý tất cả dependencies động chỉ với file autoload.php
Giải pháp
Với cách cũ, cá nhân mình không thích kiểu như hack,một cách thay thế tốt hơn bạn có thể tạo lớp riêng và load file yêu cầu autoload.php và nạp chúng vào file ‘application/config/autoload.php’.
Tạo class trong folder ‘application/libraries’:
<?php /** * Description of MY_Composer * * @author Rana */ class MY_Composer { function __construct() { include("./vendor/autoload.php"); } }
Tiếp đến, thêm class này trong biến $autoload , ở phần tử đầu tiên:
$autoload['libraries'] = array('MY_Composer','database','session');
Như vậy chúng ta đã hoàn tất.
Chúc bạn học tốt Codeigniter.
Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype