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也可以?成Shell Script
Oct 09 PHP
php字符串截取中文截取2,单字节截取模式
Dec 10 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
php文件上传的简单实例
Oct 19 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
PHP反射基础知识回顾
Sep 10 PHP
PHP 出现 http500 错误的解决方法
Mar 09 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
php笔记之:文章中图片处理的使用
2013/04/26 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
Express的路由详解
2015/12/10 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
python range实例用法分享
2020/02/06 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
python属于解释语言吗
2020/06/11 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
strstr()的简单实现
2013/09/26 面试题
新年联欢会主持词
2014/03/27 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
调研座谈会发言材料
2014/08/23 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
初一语文教学反思
2016/03/03 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS