Introduction:
Some PHP components is installed using composer, like every other dependency framework.
You can reference the page: https://packagist.org/ . This page contains a lot of useful PHP repositories, libraries.
The benefits of using composer are:
- When we create a library which depends on another libraries(of other developer), we of course do not want to copy all these libraries into our project(do not do that, they are not yours). We might want our project(library) to be condense, simple to use and always up-to-date.
- Our library users might want a small command to download everything they need, including our library. One command and everything is setup.
- User want the latest version of our library
If you are a developer, how to install libaries using composer?
First, lets imagine that your project need some external libraries(this is the fact, not imagination). So, you need to declare that, of course, raise your voice when you are hungry.
>Step 0: Go to your project's root directory,
> Step 1: Install composer, using command line:
curl -s http://getcomposer.org/installer | php
After you install, a file composer.phar will be created
> Step 2 : create a file named composer.json, this is the file which you declare about your project. The format of the file should be(simplest):
{
"name": "your-vendor-name/package-name",
"description": "A short description of what your package does",
"require": {
"php": ">=5.3.0",
"another-vendor/package": "1.*"
}
}
You declare your project name, description, and the most important part: require. This part tells what libraries your project needs
Your project requires many libraries, the format of a requirement is vendor/package:version.
Open the page and you will notice, there is a part:
require: "bryglen/yii2-apns-gcm": "dev-master"
Lets copy it into your require part of composer.json.
> Step 4: Start downloading
php composer.phar install
> Attention: there might have some problems with library version(stable or dev). By default, composer only loads stable library only. If the library you want to download is depending on some library which is dev-master, composer would not download it.
Way to solve it is add this into your composer.json file:
"minimum-stability":"dev"
Reference: https://groups.google.com/forum/#!msg/composer-dev/_g3ASeIFlrc/Lu537ZXuOLgJ
Composer and Yii
Many Yii libaries use composer. With Yii, external libraries are saved in protected/extension or protected/vendors. You might need to declare this directory in your composer.json
"config": {
"vendor-dir": "protected/vendors"
}
Reference:
------------------------------------------------------------------------------------------------------------------------
Giới thiệu
Một số php component sử dụng composer để cài đặt(giống kiểu dependency).
Các bạn có thể tham khảo trang: https://packagist.org/ để thấy, trên đó có rất nhiều các repository, library do developer lập nên.
Lợi ích của việc dùng composer này là:
- Khi mình tạo 1 library có phụ thuộc vào library của người khác, đương nhiên là mình không thể nhét tất cả library của họ vào của mình được, vì như thế chật máy, hơn nữa lại không đảm bảo là ta luôn có thư viện mới nhất để làm việc.
--> Mình sẽ tạo 1 file khai báo là library của mình phụ thuộc thằng này thằng kia...
- User chỉ cần 1 lệnh nhỏ là có thể down toàn bộ các library lẫn dependency của library đó về để dùng.
- User cập nhật library cũng dễ dàng.
Cách làm:
Đầu tiên, hãy tưởng tượng bạn project của bạn cần một số các library bên ngoài, thế thì bạn sẽ phải khai báo là bạn cần nó.
> Bước 1: cài đặt composer, dùng command line:
curl -s http://getcomposer.org/installer | php
> Bước 2: Vào thư mục gốc của bạn, tạo ra 1 file composer.json, bên trong đó ghi 1 số thông tin cơ bản.
ví dụ:
{
"name": "your-vendor-name/package-name",
"description": "A short description of what your package does",
"require": {
"php": ">=5.3.0",
"another-vendor/package": "1.*"
}
}
Giải thích: chỗ require chính là những chỗ để bạn khai báo các thư viện cần dùng cho project của bạn.
require: "bryglen/yii2-apns-gcm": "dev-master"
> Bước 3: Sau khi add các require cần thiết vào, bạn hãy gõ lệnh sau để composer tự download và cài đặt:
php composer.phar install
> Chú ý: Có 1 số package là ở trong trạng thái dev chứ không phải stable, nếu như thư viện mà bạn require lại require môt thư viện ở dạng dev, thì bạn sẽ không thể cài đặt được repository.
Cách đơn giản nhất là bạn đặt thêm option sau vào file composer.json:
"minimum-stability":"dev"
Thông báo về lỗi đó ở đây: https://groups.google.com/forum/#!msg/composer-dev/_g3ASeIFlrc/Lu537ZXuOLgJ
Cách làm với Yii framework:
Nhiều thư viện yii cũng dùng composer. Với yii thì các thư viện ngoài thường được lưu mặc định trong thư mục protected/extension hoặc protected/vendors. Các bạn cần khai báo thêm chúng trong file composer như sau:
"config": {
"vendor-dir": "protected/vendors"
}
Tham khảo:
Comments
Post a Comment