在Laravel中一步一步创建Packages
来源:互联网 发布:java 二进制流 编辑:程序博客网 时间:2024/05/01 02:27
首先要看一下Laravel官方文档,这是最新4.2的文档,如果想看中文的话点击此处,基本一样,这个github上的库setup-laravel4-package,也是一步一步介绍如何创建一个包,并关联相关资源。
这里以创建一个account包为例:
1、如果是首次使用php artisan workbench命令,需要配置app/config/workbench.php中的name和email,在生成包的时候会使用这些信息
2、在项目根目录使用,下面的命令生成最初始的包目录结构,其中--resources作用是生成相关的view、config和migrations等资源目录
包的根目录在workbench/fstos/account目录,其结构大概如下
3、将包的'Fstos\Account\AccountServiceProvider'加入到app/config/app.php中"providers"数组中,这样这个包会被加载到应用程序中
4、为本包添加独立路由文件,只需在AccountServiceProvider中的boot函数中添加如下代码,并在包的根目录创建routes.php文件
路由文件如下所示:
5、OK,现在在你的浏览器测试吧,出现了"account register router",接下来我们尝试使用controller
6、修改routes如下所示:
7、在controllers 中新建RegistrationController.php文件,代码如下:
尝试刷新页面,啊哈,是不是报错了,找不到"Fstos\Account\RegistrationController",Laravel默认是不自动查找任何目录的,需要开发者自己指定文件的存放目录,不过它也给出了建议路径,比如在使用artisan workbench的时候是不是生成了src/controllers目录呢,Ok,我们添加自动加载路径即可
8、在包的根目录的composer.json的autoload下classmap字段增加"src/controllers",并在项目根目录运行 php artisan dump-autoload,OKOK,我们刷新页面,哈哈出现啦
9、接下来我们要使用views文件!嗯嗯,按照我们理解我们只需要修改controller中代码,是滴,如下:
很显然他访问的是app/views/account/register.blade.php视图模板,我们创建这个文件并写入如下内容:
继续刷新页面吧!哈哈哈,很幸运,是这个规则~,不过我们创建一个包并不期望把包中视图放在app/views目录吧,是滴,必须得集成到包中,记得src下也有个views呢,好滴好滴,我们把文件放到包src/views/account/register.blade.php中,内容如下:
刷新页面吧,我擦,还是原来的页面,是不是Laravel优先载入app/views下的模板文件呢,我们删除app/views/account/,再次刷新页面,又失望了,再次出现了not found页面,在Laravel中,是不会自动索引包中的视图文件的,所以我们还需要做一点点工作!
10、在载入视图的时候指定他去包中寻找视图文件即可,修改controller中代码如下:
再次刷新页面,我们期待的页面出现了,我们看到controller中使用到了account这个命令空间(具体含义可以看下laravel官方文档),那么这个空间是在哪里指定的呢?
11、我们看下AccountServiceProvider.php文件中boot函数中$this->package('fstos/account');这一行代码,其实指定了这个包的命令空间和其绑定的目录,神马,看不粗来,是滴,这个函数还有第二个(空间名)和第三个(目录)参数,不过这个两个参数都有默认值,命名空间的默认值就是account,目录默认值就是包根目录下的src目录,其实就相当于如下写法:
Ok,你可以去尝试~
小插曲,从第7条往后写了两遍,第一遍保存的时候登录时间过长,保存丢失了,我勒个去,心中各种骂,想想数据备份是多么的重要~
这是我第一发布的位置:http://www.fstos.com/index.php/2014-05-26-09-01-36/81-laravel-packages
- 在Laravel中一步一步创建Packages
- 一步一步在sqlserver中创建分区表
- Laravel Packages 开发
- Laravel中创建Model
- 一步一步在idea中创建web工程(非maven)
- 在 Ubuntu 中安装 Laravel
- 在homestead下创建laravel/lumen项目
- 在 Laravel 中通过 Artisan View 扩展包创建及删除应用视图文件
- 在 Laravel 中通过 Artisan View 扩展包创建及删除应用视图文件
- 在 Laravel 5 中集成 Intervention Image 实现对图片的创建、修改和压缩处理
- Oracle Pracedures Packages创建
- laravel中创建帮助函数文件
- 【laravel】用laravel在游览器中显示Hello World
- 在 Laravel 中使用 Laravel Searchy 遇到的坑
- 一步一步在docker中构建CI流程
- 在laravel框架中使用mongodb数据库
- 在 CodeIgniter 中使用 Laravel Eloquent ORM
- 在Laravel中使用Redis报错
- 类的非静态成员函数做boost::thread参数
- JDeveloper 更改JDevRuntime位置
- 【Leetcode长征系列】Sort Colors
- ubuntu (Kubuntu) PATH相关脚本启动顺序
- cocos2dx中供类使用的一些宏
- 在Laravel中一步一步创建Packages
- 玩转Bash脚本:test测试语句
- 约瑟夫问题算法
- 2473 HDU Junk-Mail Filter [并查集+设立虚父节点(马甲)]
- Dish网络带来卡通网络对于儿童
- Brainguru科技是全球领先的搜索引擎优化公司在印度诺伊达之一
- poj 1988 Cube Stacking 并查集
- B2B加拿大公司走向全球 - 行动计划
- Linux下查看某个进程的线程数量