app服务端用php开发(php开发app后端)

安装过程

(php7.0+Linux+Laravel)

php7.0安装Laravel

  apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-curl php7.0-mbstring

安装composer组件

  wget https://getcomposer.org/composer.pharchmod +x composer.pharmv composer.phar /bin/composer

在php.ini中打开php_openssl的扩展程序

  composer create-project laravel/laravel Laravel --prefer-distcomposer create-project laravel/laravel Laravel --prefer-dist "5.1.*"

第一条是获取最新的Laravel, 第二条是5.1版本的,因为我是跟着实验楼学习的,因此个人安装的第二条命令,最新版的Laravel我发现了一些很明显的改变

用composer初始化

  composer update

最后在Laravel的Pulbic目录运行

  php -S localhost:81

在浏览器窗口输入Localhost:81即可看到Laravel运行成功的画面

文件结构

下面简单介绍一下Laravel源码里每个文件夹都是用来做什么的,了解结构才能更好地进行后续的开发。

  文件夹 介绍app 网站的业务逻辑代码,例如:控制器/模型/路由等bootstrap 框架启动与自动加载设置相关的文件config 网站的各种配置文件database 数据库操作相关的文件public 网站的对外文件夹,入口文件和静态资源(CSS,JS,图片等)resources 前端视图文件和原始资源(CSS,JS,图片等)storage 编译后的视图、基于会话、文件缓存和其它框架生成的文件tests 自动化测试文件vendor Composer 依赖文件

除了上述文件夹,根目录下有些文件也比较常用:

  文件 介绍.env 环境配置文件.env.example .env 文件的一个示例.gitignore git 的设置文件,制定哪些文件会被 git 忽略,不纳入文件管理composer.json 网站所需的 composer 扩展包composer.lock 扩展包列表,确保这个网站的副本使用相同版本的扩展包gulpfile.js GULP 配置文件( GULP 后边会学到)package.json 网站所需的 npm 包readme.md 网站代码说明文件

路由

路由系统会对用户输入的URL地址进行解析,然后分配不同的工作,有点像路由器。

基本路由

结构一般是如下:

  Route::get('welcome', function () { return view('welcome');});Route::get('/', function() { return 'Index Page';});

路由动作

我们知道,一个url请求可能有多种类型,除了常用的GET,还可能有POST、PUT、DELETE等类型的请求。

对应的处理方法如下:

  Route::post('/foo', function() { //该路由将匹配 post方法的 '/foo' url});Route::put('/foo', function() { //该路由将匹配 put方法的 '/foo' url});

除此之外,还可以用match来同时处理多种类型的请求:

  Route::match(['get', 'post'],'/foo', function () { // 该路由将匹配 get 和 post 方法的 'foo' url});

甚至,还可以使用any来同时处理所有类型的请求:

  Route::any('/foo', function() { // 该路由将匹配 所有 类型的 'foo' url});

路由参数

  Route::get('sum/{a}/{b}', function ($a, $b) { return $a . ' + ' . $b . '=' . $a + $b;});

访问localhost/sum/1/2 , 返回1+2=3。

有时你需要指定可选的路由参数,可以通过在参数后面加上?来实现。

  Route::get('hello/{name?}', function ($name = null) { return 'Hello! '.$name;});

这时你访问localhost/hello将不会报错,只是参数是空值,也可以为该可选参数设定一个默认值,当url未传参时,将显示默认值。

  Route::get('hello/{name?}', function ($name = 'Tom') { return 'Hello! '.$name;});

命名路由

  Route::get('foo', function() { //})->name('foo');

在后面添加一个后缀->name('foo')即可

正则表达式限制路由

你可以使用where方法来限制参数的格式。where方法接受参数的名称和正则表达式。

  Route::get('hello/{name?}', function ($name = 'Tom') { return 'Hello! '.$name;})->where('name','[A-Za-z]+');

一些其他函数

url()可以使用url('foo')函数来生成完整的URL。

控制器

路由部分代码: (Routes.php)

  Route::get('/', function () { return view('welcome');});Route::get('/user/name', 'UserController@name');

这段代码的意思就是,当用户访问'localhost/user/name'这个URL的时候,调用UserController这个控制器的name方法来处理请求。也就是说,将原来的闭包函数放到了一个单独的文件中。

我们可以将有共同特征的路由处理函数放到一个共同的控制器中,例如下面这种方式:

  <br /><br />Route::get('/user/name', 'UserController@name');Route::get('/user/age', 'UserController@age');Route::get('/user/introduction', 'UserController@introduction');

基础控制器

首先用artisan命令创建一个新的控制器,打开命令行,进入代码根目录:

  php artisan make:controller UserController

然后转到app/Http/Controllers目录下,可以看到刚刚创建的UserController.php。打开这个文件:

我们可以看到,Laravel为我们生成了一些默认的代码,仔细观察可以发现是7个空方法,分别是:

index()

app服务端用php开发(php开发app后端)

create()

store()

show()

edit

update

destroy

其中index()通常用来显示引导页/首页,其他的六个通常用来对数据的创建/读取/更新/删除操作,简称CRUD:

Create Retrieve Update Delete。

现在我们先删除这些空操作,然后创建一个新方法:

  <?phpnamespace AppHttpControllers;use IlluminateHttpRequest;use AppHttpRequests;use AppHttpControllersController;class UserController extends Controller{ public function name(){ return 'Name Page'; }}

也可以用如下命令创建不带空方法的类

php artisan make:controller UserController --plain

访问一下localhost/user/name即可看到返回效果

相当于把路由那部分代码放到控制器里去做了,简化了routes.php文件内容,只做路由转发的作用

控制器的命名空间

  namespace AppHttpControllers;

UserController.php 文件开始有这么一行,这行声明了该控制器的命令空间, 因为这也是控制器的默认命令空间,因此在routes.php中调用控制器的语句为:

  UserController@name

如果控制器是在User目录下面,即

  php artisan make:controller User/UserController

那么这个文件的命令空间就是:

  namespace AppHttpControllersUser;

路由部分的写法就是:

  Route::get('/user/name', 'UserUserController@name');

控制器的依赖注入

控制器中还有几行神奇的代码

  use IlluminateHttpRequest;use AppHttpRequests;use AppHttpControllersController;

所有的Controller都依赖基础Controller.php,所以需要:

  use AppHttpControllersController;

比如,当我们处理请求的时候,我们引入Request类,才可以使用很多 Laravel 提供的方法:

  use IlluminateHttpRequest;

视图

视图文件存放在 resources/views 目录下,后缀是.blade.php,表示用的blade模板引擎。

视图既可以在路由文件中调用也可以在控制器中调用。

  Route::get('errors', function () { return view('errors.503', ['message' => '503 ERROR']);});

view()函数接收两个参数,一个是视图文件名,第二个是一个数组,可以在视图文件中用{{ $message }}这样调用:

先介绍到这里了,之后继续学习在更新啦,发现laravel跟flask真的好像,简单易学,贼欢喜。

文章来源:

https://www.blogsir.com.cn/safe/369.html

1、本网站名称:源码村资源网
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » app服务端用php开发(php开发app后端)

1 评论

您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论