这篇文章主要介绍了laravel框架学习笔记之组件化开发实现方法,结合实例形式分析了laravel框架组件化开发相关的实现步骤与操作注意事项,需要的朋友可以参考下
本文实例讲述了laravel框架学习笔记之组件化开发实现方法。分享给大家供大家参考,具体如下:
1.第一个难点,就是把本地的组件引入到项目中,进行开发和测试,这个已经解决了
2.就是需要发布组件中的配置文件到项目中
3.就是怎么在组建中加载组建中的视图view层
视图
你需要告诉 laravel 视图的位置才能使 laravel 加载包中的视图。你可以通过服务提供者的 loadViewsFrom 方法。loadViewsFrom 方法接受两个参数:视图的路径和包的名称。比如,如果你的包名称是“courier”,你应该像下面一样在 boot 中添加:
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
$this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
}
包视图的使用方式是通过 package::view 类似的语法引用的。所以,你可以像这样从 courier 包中引入 admin 视图:
Route::get('admin', function () {
return view('courier::admin');
});
4.就是数据的迁移,和数据的填充,命令行安装组件(数据库和配置文件,以及一些其他基本的操作,需要在命令行执行)
需要把服务提供者写入组件的composer中,供程序提前注册
"extra":{
"laravel":{
"providers":[
"ShineYork\\LaravelShop\\Wap\\Member\\Providers\\MemberServiceProvider"
]
}
}
在服务提供者中提供了加载console的命令的方法,把写好的命令类注入到方法中即可
namespace ShineYork\LaravelShop\Wap\Member\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Arr;
class MemberServiceProvide extends ServiceProvider {
protected $commands = [
\ShineYork\LaravelShop\Wap\Member\Console\Commands\InstallCommand::class,
];
public function boot(){
$this->commands($this->commands);
}
}
5.命令行执行发布配置文件和视图
//猜测可能是命令行发布的服务提供者 前面的命令是执行发布,后面的参数是发布服务提供者的位置
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
6.数据库迁移和数据填充
7.组件加载console
8.执行我们需要用代码执行的命令
public function handle()
{
// call
$this->call('migrate');
$this->call('vendor:publish', [
// 参数表示 => 参数值
"--provider"=>"ShineYork\LaravelShop\Wap\Member\Providers\MemberServiceProvider"
]);
// echo '这是测试wap-member的安装命令';
}
9.快速创建composer 组件基础架构的组件(山药开发的组件)
composer global require shineyork/laravel-package-maker:2.0
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
本文标题为:laravel框架学习笔记之组件化开发实现方法
基础教程推荐
- PHP获取MySQL执行sql语句的查询时间方法 2022-11-09
- PHP实现Redis单据锁以及防止并发重复写入 2022-10-12
- 使用PHP开发留言板功能 2023-03-13
- 在Laravel中实现使用AJAX动态刷新部分页面 2023-03-02
- laravel ORM关联关系中的 with和whereHas用法 2023-03-02
- PHP中的错误及其处理机制 2023-06-04
- laravel 解决多库下的DB::transaction()事务失效问题 2023-03-08
- php array分组,PHP中array数组的分组排序 2022-08-01
- thinkphp3.2.3框架动态切换多数据库的方法分析 2023-03-19
- PHP命名空间简单用法示例 2022-12-01