Laravel 5 包模板使用教程
1、项目的目录结构及介绍
laravel5-package-template/
├── config/
│ └── config.php
├── lang/
│ └── en/
│ └── messages.php
├── migrations/
│ └── 2014_10_12_000000_create_package_table.php
├── src/
│ ├── PackageServiceProvider.php
│ └── PackageFacade.php
├── views/
│ └── index.blade.php
├── .gitignore
├── LICENSE
├── README.md
├── composer.json
└── routes.php
- config/: 包含包的配置文件。
- lang/: 包含语言文件,用于国际化支持。
- migrations/: 包含数据库迁移文件。
- src/: 包含包的主要源代码,包括服务提供者和门面。
- views/: 包含视图文件。
- .gitignore: Git 忽略文件。
- LICENSE: 许可证文件。
- README.md: 项目说明文件。
- composer.json: Composer 配置文件。
- routes.php: 路由文件。
2、项目的启动文件介绍
PackageServiceProvider.php
namespace Cviebrock\Package;
use Illuminate\Support\ServiceProvider;
class PackageServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->loadTranslationsFrom(__DIR__.'/../lang', 'package');
$this->loadViewsFrom(__DIR__.'/../views', 'package');
$this->loadMigrationsFrom(__DIR__.'/../migrations');
$this->publishes([
__DIR__.'/../config/config.php' => config_path('package.php'),
]);
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->mergeConfigFrom(
__DIR__.'/../config/config.php', 'package'
);
$this->app->singleton('package', function ($app) {
return new Package;
});
}
}
- boot(): 加载翻译、视图和迁移文件,并发布配置文件。
- register(): 合并配置文件,并注册单例实例。
PackageFacade.php
namespace Cviebrock\Package;
use Illuminate\Support\Facades\Facade;
class PackageFacade extends Facade
{
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'package';
}
}
- getFacadeAccessor(): 返回门面的访问器名称。
3、项目的配置文件介绍
composer.json
{
"name": "cviebrock/laravel5-package-template",
"description": "Boilerplate template for Laravel 5 packages",
"license": "MIT",
"authors": [
{
"name": "Colin Viebrock",
"email": "colin@viebrock.ca"
}
],
"require": {
"php": ">=5.5.9",
"illuminate/support": "5.2.*"
},
"autoload": {
"psr-4": {
"Cviebrock\\Package\\": "src/"
}
},
"minimum-stability": "dev"
}
- name: 包的名称。
- description: 包的描述。
- license: 许可证类型。
- authors: 作者信息。
- require: 依赖项。
- autoload: 自动加载配置。
- minimum-stability: 最低稳定性要求。
config/config.php
return [
'option1' => 'value1',
'option2' => 'value2',
];
- 包含包的配置选项。
通过以上介绍,您可以更好地理解和使用 laravel5-package-template
项目。希望这篇教程对您有所帮助!