Trong bài này chúng ta sẽ tạo module local cho project laravel của bạn.
Đầu tiên hãy tạo một project mới bằng command trong terminal:
- composer create-project --prefer-dist laravel/laravel project_module
Sau đó hãy mở command line trong project vừa tạo, ở đây mình sử dụng powersell bạn giữu "Shift + mouse right".
| Powershell |
Tiếp theo bạn tạo một folder chứa các modules trong project ở đây mình để là:
- /modules/demo
Di chuyển vào trong thư mục demo và chạy lệnh composer init và điền các thông tin như sau:
{
"name": "modules/demo",
"description": "Module demo",
"type": "mudule",
"license": "MIT",
"authors": [
{
"name": "example",
"email": "example@email.com"
}
],
"minimum-stability": "dev",
"require": {}
}
Bạn có thể sửa hoặc thêm các package trong phần require.
Thêm autoload cho module vào file composer.json ở thư mục module/demo như sau:
{
"name": "modules/demo",
"description": "Module demo",
"type": "mudule",
"license": "MIT",
"authors": [
{
"name": "example",
"email": "example@email.com"
}
],
"minimum-stability": "dev",
"require": {},
"autoload": {
"psr-4": {
"Modules\\Demo\\": "src/"
}
}
}
Laravel có hỗ trợ package auto discover tự động nạp service provider như sau:
{
"name": "modules/demo",
"description": "Module demo",
"type": "mudule",
"license": "MIT",
"authors": [
{
"name": "example",
"email": "example@email.com"
}
],
"minimum-stability": "dev",
"require": {},
"autoload": {
"psr-4": {
"Modules\\Demo\\": "src/"
}
},
"extra": {
"laravel": {
"providers": [
"Modules\\Demo\\Providers\\DemoServiceProvider"
]
}
}
}
Như vậy là đã có một package local trong project của bạn, muốn sử dụng được package phải khai báo package trong file composer.json của root project như sau:
"require": {
"php": "^7.2.5",
"fideloper/proxy": "^4.2",
"fruitcake/laravel-cors": "^1.0",
"guzzlehttp/guzzle": "^6.3",
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0",
"modules/demo": "*@dev"
},
Khai báo module/package "modules/demo": "*@dev" trong block require
Khai báo đường dẫn tới package để composer có thể tìm thấy và cài đặt.
Cuối cùng chạy lệnh Composer update và xem kết quả.
Source: https://github.com/duynv1008/project_module
"repositories": [
{
"type": "path",
"url": "./modules/demo"
}
]
Source: https://github.com/duynv1008/project_module







0 nhận xét:
Đăng nhận xét