首页 » 网站推广 » nginxphpapi技巧_软件运用Laravel快速构建RESTful风格的API

nginxphpapi技巧_软件运用Laravel快速构建RESTful风格的API

访客 2024-12-07 0

扫一扫用手机浏览

文章目录 [+]

笔者之前一贯用C++做底层开拓,在开始Web开拓旅途的时候打仗到了Laravel,利用之后觉得就像创造了新大陆,对个中的快速构建能力惊奇不已。
只管Laravel的文档非常详细,但源码才是最好的文档,Laravel的框架中利用了诸多设计模式,这也是Laravel能够写出如此优雅的代码的缘故原由。

Laravel拥有非常生动的社区,同时供应了非常丰富的开源组件,让开发者在实际开拓中为虎傅翼。

nginxphpapi技巧_软件运用Laravel快速构建RESTful风格的API

原创微信"大众号:卧龙会IT技能。
闲言碎语不用讲,说一说豪杰Laravel,本日为大家演示如何用Laravel快速支配一个大略的后台程序。

nginxphpapi技巧_软件运用Laravel快速构建RESTful风格的API
(图片来自网络侵删)

一、创建工程

环境搭建可以参照文末的干系章节,这里不详细阐述。
首先开始创建我们的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依赖;

实在这时候就可以剖析Laravel源码了,我剖析源码的习气是先剖析软件的生命周期,有个全局的观点,然后再一个模块一个模块的去剖析。
本文的重点不在这里,我们这里不过多先容。

二、数据库配置:

在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/\公众 }

原创微信公众年夜众号:卧龙会IT技能

接下来把provider添加到config目录下的app.php内的的provider数组

Dingo\Api\Provider\LaravelServiceProvider::class,Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,Tiger\Api\Providers\TigerApiServerProvider::class,L5Swagger\L5SwaggerServiceProvider::class,Encore\Admin\Providers\AdminServiceProvider::class,Zizaco\Entrust\EntrustServiceProvider::class,Toplan\PhpSms\PhpSmsServiceProvider::class,Toplan\Sms\SmsManagerServiceProvider::class,

'PhpSms' => Toplan\PhpSms\Facades\Sms::class,'SmsManager' => Toplan\Sms\Facades\SmsManager::class,

资源文件发布

php artisan vendor:publish --provider=\"大众Toplan\PhpSms\PhpSmsServiceProvider\公众php artisan vendor:publish --provider=\公众Toplan\Sms\SmsManagerServiceProvider\公众

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' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,增加到kenel.php中的 $routeMiddleware数据中

修正默认的用户认证model为Profile

修正config/auth.php 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\Profile::class, 'table' => 'profile', ],

修正jwt.php 'user' => 'App\Models\Profile',

下面一步是设置时区,到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=App\Models\User

上面的命令实行完成后,

然后修正对用的controller的代码,完成软件逻辑的部分。

必须要在app\Admin\routes.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的主目录,然后进入vendor\bin,将这个路径加入环境变量。
从上面的报错信息里可以看出,你用来初始化项目的vendor\bin是C:\Users\yanwushu\vendor\bin,你须要确定这个路径是composer的主目录,且下面的vendor\bin存在。
建议实行一下我上面说的方法,查看一下路径,然后添加精确路径到环境变量。

虽然packagist会有点卡,但是也不推举利用composer中文镜像,否则下载的包有可能不是最新的,各种问题会涌现。

文|原创:阡陌网络

更多精彩,专注IT技能,请关注

微信"大众年夜众号:卧龙会IT技能

有大神直播免费***课!
赶紧来与卧龙会大神互动

------欢迎大家分享原文到朋友圈,微信群,QQ群等!
本文由卧龙会团队成员阡陌网络原创,请勿抄袭,转载,转载联系卧龙会进行授权,否则深究法律任务。

标签:

相关文章

solrphpclient技巧_Solr82入门

Solr 是Apache下的一个顶级开源项目,采取Java开拓,它是基于Lucene的全文搜索做事器。Solr供应了比Lucene...

网站推广 2024-12-08 阅读0 评论0

lovephp06技巧_PHP根本06函数

什么是函数?此讲解根据本人理解来写,希望能帮助您理解,但是不担保完备的准确性和威信性,请悉知。一个函数便是一个方法。函数是可以在程...

网站推广 2024-12-08 阅读0 评论0