最近需要用laravel框架开发一个后台管理系统,找了很多项目实例后,决定在基于laravel5.1开源的CowCat框架进行学习开发,这系列文章会总结学习laravel学习中遇到的问题
部署laravel项目
修改项目下的.env文件
DB配置,需要关联本地数据库。
CACHE_DRIVER一般是用’array’模式,有些项目会是用’file’但如果你的cache不是用文件记录的话,会导致报错
This cache store does not support tagging.
,如项目之后需要用到redis,这里也可以选择redis模式。
安装composer,并完善项目。windows下最好使用管理员权限执行composer命令,linux则赋予项目目录读写权限,然后安装最新composer包
composer install
php artisan migrate:refresh --seed
数据库迁移php artisan serve
开启程序服务器,并在指定端口上访问项目php artisan key:generate
生成新的密钥,这是.env中的app_key
在访问项目时要确保php拓展是否开启,不然会出现很多错误提示,如oppenssl、pdo_mysql、gd2、curl、fileinfo、mbstring、phpmysqli等。
如果是在linux环境中必须给予app\storage文件夹读写权限,否则访问项目页面会报500错误,另外需要在nginx配置中给项目指定虚拟主机vhost,如果是在windows环境可以使用apache自带的vhost虚拟机,或者使用
php artisan serve
命令在localhost:8000端口直接访问当前项目,若不适用虚拟地址访问,会造成前端样式和js失效。
使用项目心得
.env中的配置属性,可以在app\config中或者项目其他地方利用env()辅助函数调用,可以使用
php artisan config:cache
命令将配置缓存,这适用于生产环境的项目,因为配置变动小,利用缓存配置的方式可以加快加载速度,但是不适合于多改动的生产环境,若开启了配置缓存,每次修改配置都需要使用php artisan config:clear
清除缓存,而env这个环境变量的目的是根据当前环境调用对应的环境配置。在项目中用到了facade、presenter、provider、repository、trait等特性和设计模式,有效的解耦代码,分层和复用。
- Facade–门面作为服务容器中的底层类的“静态代理”,用来创建真正实现功能的类,优点是灵活,简明且富有表现力。
- Presenter,搭配模板使用可以统一模板,减少冗余代码。
- Provider–服务提供者,提供服务给容器,并注册到相应的容器中提供使用,在其中可以用到监听、注册等方法。
- Repository–仓库模式,相当于一个数据操作代理层,将控制器里的数据操作剥离出来,同时能减少代码的复用,提高controller里的代码的可读性,分离数据操作和业务逻辑。
- Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制,trait可以将模块化的实现方式注入多个无关的类中,提高代码的复用,符合DRY(dont repeat yourself)原则。