Laravel 课程自学笔记

安装配置

安装composer

www.getcomposer.org
www.phpcomposer.com

composer.exe     一装到底,在第二步的时候选择php.exe 安装的位置

安装laravel

    命令行下安装:在 cmd 命令行下,先cd 到安装位置:

    C:\Users\Administrator>d:
    D:\cd wamp64
    D:\wamp64>cd www
    D:\wamp64\www>cd test
    D:\wamp64\www\test>composer create-project laravel/laravel --prefer-dist     

    这样会安装的结果是: D:\wamp64\www\test\laravel   
    如果第一次安装,会自动下载并创建相应文件名的文件夹。如创建另外的文件夹
    composer create-project laravel/laravel blog --prefer-dist

    启用镜像服务的方式有两种:
    系统全局配置:即将配置信息添加到 composer 的全局配置文件 config.json中
    名单个项目配置:将配置信息添加到某个项目的 composer.json 文件中

    修改composer的全局配置文件(cmd):
    composer config -g reop.packgist composer https://packagist.phpcomposer.com

    创建一个test文件夹,里面txt写一个 composer.json 配置文件,写入命令(cmd):
    composer config repo.packagist composer https://packagist.phpcomposer.com

Laravel初始化配置

1. wampp准备
2. 把blog文件夹上传到 SourceTree 新建/克隆
3. 开启rewrite 和 vhost

    3.1. D:\wamp64\bin\apache\apache2.4.18\conf\httpd.conf
            LoadModule rewrite_module modules/mod_rewrite.so 
            LoadModule vhost_alias_module modules/mod_vhost_alias.so
            Include conf/extra/httpd-vhosts.conf        //这是虚拟机的
            ## rewrite/vhost 前面的 # 删掉
            AllowOverride all
            Require all granted

    3.2 D:\wamp64\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.conf
            <VirtualHost *:80>
                ServerName blog
                DocumentRoot D:/wamp64/www/code/blog/
                <Directory  "D:/wamp64/www/code/blog/">             

    3.3 C:\Windows\System32\drivers\etc\HOSTS
            在127.0.0.1 localhost 下面再加上一行  127.0.0.1  blog

    3.4 重启wamp 浏览器地址栏输入  blog.hd/public/   就可以直接登陆laravel欢迎界面了 

    3.5  D:\wamp64\bin\php\php5.6.19、php.ini
    extension = php_openssl.dll
    extension = php_mbstring.dll
    extension = php_pdo_mysql.dll

    4.D:\wamp64\www\code\blog\server.php 将server.php 改名index.php 直接运行blog
    4.1   复制D:\wamp64\www\code\blog\public\.htaccess 到 blog 文件夹下。做伪静态文件

配置入口目录说明

vhost文件修改
C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "g:/code/blog/public/"
    ServerName blog.hd
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

注:独立服务器,有修改入口文件目录权限或者子目录绑定域名的情况下使用本方法

Laravel5.2目录结构及composer.json文件解析

开发工具
phpstorm (代码提示强,特别是对laravel可设置同步修改文件)
sublime/Atom (Atom 出的插件写代码的时候效果较好)
Hbulider (国人开发 性能要求高,安装包多,但运行占资源)
Zend Studio(重型坦克。没有针对larvel做特别开发。)
Eclipe (需要装插件)
Visual Studio Code

框架结构:目录结构/composer.json

目录或文件                                                       说           明
|– app          包含Controller、Model、路由等在内的应用目录,大部分业务将在该目录下进行
|  |– Console              命令行程序目录
|  |  |– Commands        包含用于命令行执行的类,可在该目录下自定义类
|  |  |– Kernel.php      命令调用内核文件,包含commands变量(命令清
|    |     |        单,自定义的命令需加入到这里)和schedule方法(用于任务调度,即定时任务)    
|  |– Events                事件目录
|  |– Exceptions            包含了自定义错误和异常处理类
|  |– Http                  HTTP传输层相关的类目录
|  |  |– Controllers      控制器目录
|  |  |– Middleware       中间件目录
|  |  |– Requests         请求类目录
|  |  |– Kernel.php       包含http中间件和路由中间件的内核文件
|  |  |– routes.php       强大的路由
|  |– Jobs                  该目录下包含队列的任务类
|  |– Listeners             监听器目录
|  |– Providers             服务提供者目录
|  |– User.php              自带的模型实例,我们新建的Model默认也存储在该目录
|– bootstrap                    //框架启动载入目录
|  |– app.php               创建框架应用实例
|  |– autoload.php          自动加载
|  |– cache                 存放框架启动缓存,web服务器需要有该目录的写入权限
|– config                       !!!各种配置文件的目录
|  |– app.php               系统级配置文件
|  |– auth.php              用户身份认证配置文件,指定好table和model就可方便使用身份认证
|  |– broadcasting.php      事件广播配置文件
|  |– cache.php             缓存配置文件
|  |– compile.php           编译额外文件和类需要的配置文件,一般用户很少用到
|  |– database.php          数据库配置文件
|  |– filesystems.php       文件系统配置文件,这里可以配置云存储参数
|  |– mail.php              电子邮件配置文件
|  |– queue.php             消息队列配置文件
|  |– services.php          可存放第三方服务的配置信息
|  |– session.php           配置session的存储方式、生命周期等信息
|  |– view.php              模板文件配置文件,包含模板目录和编译目录等
|– database                 数据库相关目录
|  |– factories             5.1以上版本的新特性,工厂类目录,也是用于数据填充
|  |  |– ModelFactory.php   在该文件可定义不同Model所需填充的数据类型
|  |– migrations            存储数据库迁移文件
|  |– seeds                 存放数据填充类的目录
|  |  |– DatabaseSeeder.php     执行php artisan db:seed命令将会调
|     |    |                    用该类的run方法。该方法可调用执行该目录下其
|     |    |                    他Seeder类,也可调用factories方法生成
|     |    |                    ModelFactory里定义的数据模型
|    |   |
|– public                   !!!网站入口,应当将ip或域名指向该目录而不是根目录。
                                可供外部访问的css、js和图片等资源皆放置于此
|  |– index.php             入口文件
|  |– .htaccess             !!!Apache服务器用该文件重写URL
|  |– web.config            !IIS服务器用该文件重写URL
|– resources                  资源文件目录(静态资源)
|  |– assets                可存放包含LESS、SASS、CoffeeScript在内的原始资源文件
|  |– lang                  本地化文件目录(语言包)
|  |– views                 !!!视图文件就放在这啦
|– storage                    存储目录。web服务器需要有该目录及所有子目录的写入权限
|  |– app                   可用于存储应用程序所需的一些文件
|  |– framework             该目录下包括缓存、sessions和编译后的视图文件
|  |– logs                  日志目录
|– tests                        测试目录
|– vendor                       该目录下包含Laravel源代码和第三方依赖包
|– .env                         !!!针对本地环境配置的文件。config目录下的配置文
|     |                         件会使用该文件的参数,不同生产环境使用不同的.env文件即可。
|– artisan                      强大的命令行接口,你可以在app/Console/Commands下编写自定义命令
|– composer.json                !!!存放依赖关系的文件
|– composer.lock                !!!锁文件,存放安装时依赖包的真实版本
|– gulpfile.js                  gulp(一种前端构建工具)配置文件
|– package.json                 gulp配置文件
|– phpspec.yml                  phpspec(一种PHP测试框架)配置文件
|– phpunit.xml                  phpunit(一种PHP测试框架)配置文件
|– server.php                   PHP内置的Web服务器将把这个文件作为入口。
                                以public/index.php为入口的可以忽略掉该文件

composer.json文件

{   
"name": "laravel/laravel",  //项目名称
"description": "The Laravel Framework.",    //描述
"keywords": ["framework", "laravel"],   //关键词
"license": "MIT",   //许可协议 MIT 可修改但要保留原版信息
"type": "project",  //类型
"require": {    
    "php": ">=5.5.9",   //PHP版本
    "laravel/framework": "5.2.*"    //框架版本
},  
"require-dev": {    //依赖包
    "fzaninotto/faker": "~1.4",    
    "mockery/mockery": "0.9.*", 
    "phpunit/phpunit": "~4.0", 
    "symfony/css-selector": "2.8.*|3.0.*",  //这是个内核
    "symfony/dom-crawler": "2.8.*|3.0.*"    //lavel是根据这个改的
},  
"autoload": {   //自动加载
    "classmap": [   
        "database"  
    ],  
    "psr-4": {  //一种自动加载的规范
        "App\\": "app/" 
    }   
},  
"autoload-dev": {   //加载测试
    "classmap": [   
        "tests/TestCase.php"    
    ]   
},  
"scripts": {    //执行脚本
    "post-root-package-install": [  
        "php -r \"copy('.env.example', '.env');\""  //这和.env文件是一样的
    ],  
    "post-create-project-cmd": [    
        "php artisan key:generate"  //生成随机数的命令。保证session/cookie的安全
    ],  
    "post-install-cmd": [   
        "php artisan clear-compiled",   //清理安装过程文件
        "php artisan optimize"          //清理安装完成后的垃圾文件
    ],  
    "post-update-cmd": [    
        "php artisan clear-compiled",   
        "php artisan optimize"  
    ]   
},  
"config": {         //配置项
    "preferred-install": "dist" //优先安装压缩版
},  
"repositories": {   //配置composer镜像
    "packagist": {  
        "type": "composer", 
        "url": "https://packagist.phpcomposer.com"  //中文镜像地址
    }   
  }

基础路由

1.有效路由的方法 先打开 blog\app\Http\routes.php 文件

Route::get($uri,$callback);

    Route::get('/blog',function(){
        echo 'get';     
});

Route::post($uri,$callback);
Route::put ($uri,$callback);
Route::patch  ($uri,$callback);
Route::delete ($uri,$callback);
Route::options($uri,$callback);

有时候需要注册路由响应多个HTTP请求,可以通过 match 方法来实现,或者甚至可以使用 any 方法注册一个路由响应所有的HTTP请求

Route::match(['get','post'],'/test',function(){
    echo 'succ';
});

Route::any('foo',function(){});


2. 必选参数

Route::get('user/{id}',function($id){  //user 后面括号里的 id 是路由的必填参数 
  ##注意:User_参数 / - _ 都可执行
    return 'User'.$id; // $id无实意  浏览器地址栏 blog/User/10  返回user 10

}); //输出用echo同return。 




Route::get('posts/{post}/comments/{comment}',function($postId,$commentId){

    return '$postId';  //在浏览器地址栏输入 blog/posts/20/commments/30  返回 20
    return '$commentId';//在浏览器地址栏输入 blog/posts/20/commments/30  返回 30

});


3. 可选参数

Route::get('user/{id?}',function($id){  //user后id可不填,但user 后面的可选参数不填
                                    时,function里面的闭包函数($id=null) 才有输出 
        return 'User'.$id;    // 闭包函数$id 也可以先赋一个默认值,就可直接打印默认值

}); //

postman的添加

谷歌浏览器->更多工具->添加程序->开发者模式->获取更多拓展程序->查找添加->返回拓展程序页面->详细信息->添加到桌面

HTTP控制器

手动创建方法:所有 laravel 方法都要在路由里面去配置路径
    根据larvel 结构是 
    1.submit user Request(提交请求)->
    2.Routing(路由)->3.controller(控制器提交View和Model)->
    4.->View(视图层)
    4.<->(控制器和和Model互相交换信息)Model(Model和数据库连接并返回信息)<->Database

控制器的位置:HTTP/Controllers/Controller.php  这是全局的基本控制器,仅供调用一些方法


    1.配置路径 打开  blog\app\Http\routes.php 
    写入 Route::get('test','Admin\IndexController@Index');
    ## 小伙子!!!这个地方的反斜线,一定不能搞错。不然要找不到admin下的index方法的!!&#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值