php中的定名 空间(php中的定名 空间在哪)〔php 命名空间 通俗易懂〕

安装过程

(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()

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;

php中的命名空间(php中的命名空间在哪) php中的定名
空间(php中的定名
空间在哪)〔php 命名空间 通俗易懂〕 新闻资讯

比如 ,当我们处理 惩罚 哀求 的时间 ,我们引入Request类,才可以利用 很多 Laravel 提供的方法:

  use IlluminateHttpRequest;

视图

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

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

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

view()函数吸取 两个参数,一个是视图文件名,第二个是一个数组 ,可以在视图文件中用{{ $message }}如许 调用:

php中的命名空间(php中的命名空间在哪) php中的定名
空间(php中的定名
空间在哪)〔php 命名空间 通俗易懂〕 新闻资讯

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

文章泉源 :

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