Laravel是一款设计简洁、优雅的Web开发框架,受益于PHP的众多新特性, Laravel可以帮助开发者快速构建RESTful风格的API,因此在国外开发者中非常流行。
笔者之前一直用C++做底层开发,在开始Web开发旅途的时候接触到了Laravel,使用之后感觉就像发现了新大陆,对其中的快速构建能力惊奇不已。尽管Laravel的文档非常详细,但源码才是最好的文档,Laravel的框架中运用了诸多设计模式,这也是Laravel能够写出如此优雅的代码的原因。
Laravel拥有非常活跃的 区,同时提供了非常丰富的开源组件,让开发者在实际开发中如虎添翼。
一、创建工程
环境搭建可以参照文末的相关章节,这里不详细阐述。首先开始创建我们的Laravel空白项目。
-
新建工作目录,选在D盘的work目录:
切换到work目录下,执行composer命令:
composer create-project laravel/laravel yourProjectName
如果一切正常,work目录下就会生成一个空的Laravel项目。目录结构如下:
稍作解释:
app是我们写自己代码的地方,包含了应用的核心代码;
bootstrap目录包含了少许文件用于框架的启动和自动载入配置,还有一个cache文件夹用于包含框架生成的启动文件以提高性能;
config目录包含了应用所有的配置文件;
database目录包含了数据迁移及填充文件,如果你喜欢的话还可以将其作为SQLite数据库存放目录;
public目录包含了前端控制器和资源文件(图片、js、css等);
resources目录包含了视图文件及原生资源文件(LESS、SASS、CoffeeScript),以及本地化文件;
storage目录包含了编译过的Blade模板、基于文件的session、文件缓存,以及其它由框架生成的文件,该文件夹被隔离成app、framework和logs目录,app目录用于存放应用要使用的文件,framework目录用于存放框架生成的文件和缓存,最后,logs目录包含应用的日志文件;
tests目录包含自动化测试,其中已经提供了一个开箱即用的PHPUnit示例;
vendor目录包含Composer依赖;
二、数据库配置:
在L.env中修改数据库相关链接信息,否则有些组件包会安装失败.
三、组件安装
从码云下载开发api后台常用的函数组件包,我自己写的,用起来方便不少,一些常用的操作不需要重复开发:
进入 我们的工程目录 并clone下来我的库
https://git.oschina.net/duyisu/tiger.git,
然后安装后台开发必要的组件,包括(在根目录(laraveltest)底下直接执行下列命令)
composer require dingo/api 1.0.x@devcomposer require damian-nz/l5-swagger dev-mastercomposer require encore/laravel-admin “1.4.*”composer require tymon/jwt-auth “^0.5.11″composer require toplan/laravel-sms ~2.5composer require endroid/qrcode ^1.9
composer require zizaco/entrust 5.2.x-dev
稍作解释
Dingo/api是用来开发api的组件包
Damian-nz/l5-swagger是用来自动生成api在线文档的组件包
Encore/aravel-admin用来快速开发管理后台
Tymon/jwt-auth 用户授权验证组件包
Toplan/laravel-sms短信验证
Endroid/qrcode 二维码生成
Tiger组件包需要手动修改依赖文件
在根目录下修改composer.json,将”Tiger\Api\”: “app/tiger/api/src/”添加到psr-4:还用到一个帮助文件, “psr-4”: { “App\”: “app/”, “Tiger\Api\”: “app/tiger/api/src/” }
接下来把provider添加到config目录下的app.php内的的provider数组
DingoApiProviderLaravelServiceProvider::class,TymonJWTAuthProvidersJWTAuthServiceProvider::class,TigerApiProvidersTigerApiServerProvider::class,L5SwaggerL5SwaggerServiceProvider::class,EncoreAdminProvidersAdminServiceProvider::class,ZizacoEntrustEntrustServiceProvider::class,ToplanPhpSmsPhpSmsServiceProvider::class,ToplanSmsSmsManagerServiceProvider::class,
‘PhpSms’ => ToplanPhpSmsFacadesSms::class,’SmsManager’ => ToplanSmsFacadesSmsManager::class,
资源文件发布
php artisan vendor:publish –provider=”ToplanPhpSmsPhpSmsServiceProvider”php artisan vendor:publish –provider=”ToplanSmsSmsManagerServiceProvider”
php artisan l5-swagger:publish
composer dump-autoload
php artisan vendor:publish
其他必要的操作
.env增加API_STANDARDS_TREE=vndAPI_PREFIX=apiAPI_VERSION=v1API_DEBUG=true
修改api在线文档路由
修改config目录下l5-swagger.php ‘routes’ => [ ‘docs’ => ‘docs’, ],
‘paths’ => [
‘excludes’ => [base_path(‘app/tiger/api’)],
], ‘generate_always’ => env(‘L5_SWAGGER_GENERATE_ALWAYS’, true), ‘
添加中间件
‘jwt.auth’ => TymonJWTAuthMiddlewareGetUserFromToken::class,增加到kenel.php中的 $routeMiddleware数据中
修改默认的用户认证model为Profile
修改config/auth.php ‘providers’ => [ ‘users’ => [ ‘driver’ => ‘eloquent’, ‘model’ => AppModelsProfile::class, ‘table’ => ‘profile’, ],
修改jwt.php ‘user’ => ‘AppModelsProfile’,
下面一步是设置时区,到config/app.php文件下修改时区。
‘timezone’ => ‘Asia/Shanghai’,
四、代码自动生成
接下来后台代码可以自动生成了:
-
创建用户认证相关控制器,路由 这个功能依赖于我自己写的tiger组件包 php artisan api:make-auth-controller UserController
-
Api接口相关的模型控制器 这个功能依赖于我自己写的tiger组件包 php artisan api:make-controller User
-
安装后台管理相关的路由
后台管理 laravel-admin包的命令行功能,可以快速生成后台php artisan admin:make UserController –model=AppModelsUser
-
上面的命令执行完成后,
然后修改对用的controller的代码,完成软件逻辑的部分。
必须要在appAdminroutes.php里面添加路由.
至此,app后台基本框架已经完成。
在线api文档生成的路径是yourdomain/api-docs
后台api访问路径yourdomain/api/xxx
后台管理访问路径yourdomain/admin 用户名:admin 密码:admin
五、环境搭建
开发环境在windows下开发,安装wamp一键安装包即可,自己百度。
生产环境是unbunbo,环境的搭建参考这篇博文
http://www.blog8090.com/ubuntu-xia-php7-mysql5-7-lnmp-huan-jing-da-jian/
可能会踩坑的地方是:
1.mysql安装0.5.3的源会失败,换成0.8.1的就没有问题
2.配置nginx老是不成功,原来是和自带的apache冲突,卸载掉apache在装nginx
sudo apt-get remove apache*
安装composer依赖管理工具,官 下载即可,支持windows一键安装。
有时候安装了composer不能正常使用,有可能是环境变量问题,解决方案:composer环境变量问题:在命令行里执行
composer config -l -g
在输出的结果中,其中的 【home】 配置项内容就是了composer的主目录,然后进入vendorbin,将这个路径加入环境变量。从上面的 错信息里可以看出,你用来初始化项目的vendorbin是C:Usersyanwushuvendorbin,你需要确定这个路径是composer的主目录,且下面的vendorbin存在。建议执行一下我上面说的方法,查看一下路径,然后添加正确路径到环境变量。
虽然packagist会有点卡,但是也不推荐使用composer中文镜像,否则下载的包有可能不是最新的,各种问题会出现。
更多精彩,专注IT技术,请关注
有大神直播免费公益课!赶快来与卧龙会大神互动
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!