janole / laravel-composer-package
仅为 Laravel 设计的一个演示 composer 包...
v1.0.0
2019-05-01 17:10 UTC
Requires
- laravel/framework: ^5.5
This package is auto-updated.
Last update: 2024-09-23 20:58:53 UTC
README
这是一个为 Laravel 设计的演示 composer 包。它将向您展示如何添加视图、路由甚至 artisan 命令。您可以用这个项目作为创建自己包的起点哦。
安装
只需在您的 Laravel 应用中引入此包
composer require janole/laravel-composer-package
现在您将拥有一个新的 artisan 命令
$ php artisan demo:command Hello, world!
还将有一些演示路由
$ php artisan route:list
+--------+----------+-----------+------+---------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-----------+------+---------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | api/v1/me | | Closure | api |
| | GET|HEAD | hello | | Closure | |
| | GET|HEAD | me | | Closure | web |
+--------+----------+-----------+------+---------+--------------+
这是怎么工作的?(...是魔法吗?...不是!)
首先,您需要将您的包注册到 Laravel 中。
只需扩展一个 Illuminate\Support\ServiceProvider 类,并将其添加到 composer.json 包描述文件中的 extra -> laravel -> providers 块中
{
"name": "janole/laravel-composer-package",
"type": "project",
"description": "Just a demo composer package for Laravel ...",
...
"extra": {
"laravel": {
"providers": [
"janole\\Demo\\PackageServiceProvider"
]
}
}
}
在 PackageServiceProvider 内部
使用扩展提供者类的 boot() 函数来注册命令、路由或视图
class PackageServiceProvider extends ServiceProvider { ... public function boot() { // Register an artisan command ... (php artisan demo:command) $this->commands([\janole\Demo\Console\Commands\DemoCommand::class]); // Register some demo routes $this->loadRoutesFrom(__DIR__.'/../routes/routes.php'); // Register some demo views // (use them with the corresponding prefix like: @include("demo-views::the-view-name")) $this->loadViewsFrom(__DIR__.'/../resources/views', 'demo-views'); } }
使用视图
在注册视图时,您可以指定一个 前缀
$this->loadViewsFrom(__DIR__.'/../resources/views', 'prefix');
现在,您可以直接在您的 Laravel 应用中使用这些视图(Blade 模板)了
@include("prefix::the-view-name", ...)
参考资料
-
Laravel 包开发 来自官方 Laravel 文档
-
Laravel 包开发基础 来自 Pineco.de