laravel框架学习笔记之组件化开发实现方法


Posted in PHP onFebruary 01, 2020

本文实例讲述了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
php操作xml
Oct 27 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
php显示时间常用方法小结
Jun 05 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 PHP
常见的5个PHP编码小陋习以及优化实例讲解
Feb 27 PHP
php正则表达式使用方法整理集合
Jan 31 #PHP
laravel邮件发送的实现代码示例
Jan 31 #PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 #PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 #PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 #PHP
Laravel框架自定义分页样式操作示例
Jan 26 #PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 #PHP
You might like
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
收集json解析的四种方法分享
2014/01/17 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
python实现猜单词小游戏
2020/05/22 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
python中调试或排错的五种方法示例
2019/09/12 Python
PyTorch预训练的实现
2019/09/18 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
利用指针变量实现队列的入队操作
2012/04/07 面试题
小学老师寄语大全
2014/04/04 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
银行先进个人总结
2015/02/15 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
Python 如何安装Selenium
2021/05/06 Python
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis