美文网首页
Laravel 框架杂项

Laravel 框架杂项

作者: 左诗右码 | 来源:发表于2024-02-17 12:10 被阅读0次

    laravel 开启 sql 日志

    vim app/Providers/AppServiceProvider.php

    
    use Illuminate\Support\Str;
    .
    .
    .
        public function boot()
        {
            .
            .
            .
            // 只在本地开发环境启用 SQL 日志
            if (app()->environment('local')) {
                // 如果需要临时打印 sql ,则需要直接将以下代码放置到 sql 查询代码之前即可
                \DB::listen(function ($query) {
                    \Log::info(Str::replaceArray('?', $query->bindings, $query->sql));
                });
            }
        }
    .
    .
    .
    
    

    host文件夹位置

    
    //Windows :
    subl C:/Windows/System32/Drivers/etc/hosts
    //MacOS
    subl /etc/hosts
     
    

    Laravel 项目搭建步骤

    1. composer 安装项目
    
    composer create-project laravel/laravel Laravel --prefer-dist "5.5.*"
    
    // 创建一个名为 sample 的应用
    composer create-project laravel/laravel sample --prefer-dist "5.5.*"
    
    
    1. 修改 hosts
    
    192.168.10.10   sample.test
    
    

    Mac 下打开 Hosts 文件: subl /etc/hosts

    Windows 下打开 Hosts 文件:subl C:/Windows/System32/Drivers/etc/hosts

    1. 新增站点

    subl ~/Homestead/Homestead.yaml

    
    ---
    ip: "192.168.10.10"
    memory: 2048
    cpus: 1
    provider: virtualbox
    
    authorize: ~/.ssh/id_rsa.pub
    
    keys:
        - ~/.ssh/id_rsa
    
    folders:
        - map: ~/Code
          to: /home/vagrant/Code
    
    sites:
        - map: homestead.test
          to: /home/vagrant/Code/Laravel/public
        - map: sample.test # <--- 这里
          to: /home/vagrant/Code/sample/public # <--- 这里
    
    databases:
        - homestead
        - sample # <--- 这里
    
    variables:
        - key: APP_ENV
          value: local
    
    # blackfire:
    #     - id: foo
    #       token: bar
    #       client-id: foo
    #       client-token: bar
    
    # ports:
    #     - send: 93000
    #       to: 9300
    #     - send: 7777
    #       to: 777
    #       protocol: udp
    
    
    1. 重启虚拟机
    
    cd ~/Homestead && vagrant provision && vagrant reload
    
    

    视图部分:

    1. 使用 Yarn 对扩展包进行安装(在项目根目录下执行以下命令)
    
    yarn install --no-bin-links   
    
    yarn add cross-env
    
    
    1. 安装完成之后,让我们对 Laravel 默认生成的 app.scss 文件进行编辑,删除此文件里的所有内容,只留下面一行,导入 Bootstrap:

    resources/assets/sass/app.scss

    
    // Bootstrap
    @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
    
    

    集成 Bootstrap 的 JavaScript 库
    我们只需要在 app.js 中对其进行加载即可:
    resources/assets/js/app.js

    
    require('./bootstrap');
    
    

    在我们重新运行 watch-poll 任务之后,app.js 文件将会被编译到应用的 public 文件夹下,然后再去引用 public/js 文件夹下的 app.js

    1. 每次检测到 .scss 文件发生更改时,自动将其编译为 .css 文件
    
    npm run watch-poll
    
    

    模型部分

    1. 使用 App/Models 命名空间
    
    // 在项目根目录执行命令,创建 Models 文件夹
    mkdir app/Models
    
    // 移动默认的 User.php 模型
    mv app/User.php app/Models/User.php
    
    
    1. 修改 User.php 文件,更改 namespace 为我们新创建的文件夹路径
      app/Models/User.php
    
    <?php
    
    namespace App\Models;
    
    
    1. 编辑器全局搜索 App\User 替换为 App\Models\User
    
    // 一般是4个文件
    
    

    中文语言包部分

    1. 项目根目录下执行 composer 安装命令
    
    composer require "overtrue/laravel-lang:~3.0"
    
    
    1. 修改配置文件配置

    config/app.php

    
    <?php
    
    return [
        .
        .
        .
        // 修改语言为中文
        'locale' => 'zh-CN',
        // 修改时区为上海时区
        'timezone' => env('TIMEZONE','Asia/Shanghai'),
        .
        .
        .
    ];  
    
    

    添加辅助函数

    1. 根目录下执行
    
    // linux 虚拟机下命令
    touch app/helpers.php
    
    
    1. 在我们新增 helpers.php 文件之后,还需要在项目根目录下 composer.json 文件中的 autoload 选项里 files 字段加入该文件:
    
        "autoload": {
            "psr-4": {
                "App\\": "app/"
            },
            "classmap": [
                "database/seeds",
                "database/factories"
            ],
            # 默认没有 files 字段,需要手动添加
            "files": [
                "app/helpers.php"       # <--- 这里
            ]
        },
        
    
    1. 修改保存后运行以下命令进行重新加载文件即可:
    
    composer dump-autoload
    
    

    Laravel 项目安装步骤

    1. 先在虚拟机中运行以下命令来实现 Composer 安装加速
    
    composer config -g repo.packagist composer https://packagist.laravel-china.org
    
    
    1. 修改 host 文件
    2. 新增站点
    3. 重新加载 Homestead.yaml
    
    vagrant provision && vagrant reload
    
    
    1. 初始化项目
    
    // 需要进入项目根目录之后执行
    
    composer install
    
    
    1. 复制环境文件
    
    cp .env.example .env
    
    
    1. 生成密钥
    
    php artisan key:generate
    
    
    1. 初始化数据库
    
    php artisan migrate --seed
    
    

    Laravel 文件夹结构简介

    文件夹名称 简介
    app 应用程序的业务逻辑代码存放文件夹
    app/Console 存放自定义 Artisan 命令文件
    app/Http/Controllers 存放控制器文件
    app/Http/Middleware 存放「中间件」文件
    bootstrap 框架启动与自动加载设置相关的文件
    composer.json 应用依赖的扩展包
    composer.lock 扩展包列表,确保这个应用的副本使用相同版本的扩展包
    config 应用程序的配置文件
    database 数据库操作相关文件(数据库迁移和数据填充)
    node_modules 存放 NPM 依赖模块
    package.json 应用所需的 NPM 包配置文件
    phpunit.xml 测试工具 PHPUnit 的配置文件
    public 前端控制器和资源相关文件(图片、JavaScript、CSS)
    readme.md 项目介绍说明文件
    resources 应用资源
    resources/assets 未编译的应用资源文件(图片、JavaScript、CSS)
    resources/lang 多语言文件
    resources/views 视图文件
    routes/api.php 用于定义 API 类型的路由
    routes/channels.php 事件转播注册信息
    routes/console.php 用于定义 Artisan 命令
    routes/web.php 用于定义 Web 类型的路由(重点,大部分情况下本书会用到)
    server.php 使用 PHP 内置服务器时的 URL 重写(类似于 Apache 的 "mod_rewrite" )
    storage 编译后的视图、基于会话、文件缓存和其它框架生成的文件
    storage/app 目录可用于存储应用程序使用的任何文件
    storage/framework 目录被用于保存框架生成的文件及缓存
    storage/logs 应用程序的日志文件
    tests 应用测试相关文件
    vendor Composer 依赖模块
    webpack.mix.js Laravel 的前端工作流配置文件
    yarn.lock Yarn 依赖版本锁定文件
    .gitignore 被 Git 所忽略的文件
    .env 环境变量配置文件

    resource 方法将遵从 RESTful 架构为用户资源生成路由。该方法接收两个参数,第一个参数为资源名称,第二个参数为控制器名称。

    
    Route::resource('users', 'UsersController');
    
    

    上面代码等同于:

    
    // 显示所有用户列表的页面
    Route::get('/users', 'UsersController@index')->name('users.index');
    
    // 显示用户个人信息的页面
    Route::get('/users/{user}', 'UsersController@show')->name('users.show');
    
    // 创建用户的页面
    Route::get('/users/create', 'UsersController@create')->name('users.create');
    
    // 创建用户
    Route::post('/users', 'UsersController@store')->name('users.store');
    
    // 编辑用户个人资料的页面
    Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit');
    
    // 更新用户
    Route::patch('/users/{user}', 'UsersController@update')->name('users.update');
    
    // 删除用户
    Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');
    
    

    Eloquent 表命名约定

    在该文件中,Eloquent Article 模型默认情况下会使用类的「下划线命名法」与「复数形式名称」来作为数据表的名称生成规则。如:

    • Article 数据模型类对应 articles 表;
    • User 数据模型类对应 users 表;
    • BlogPost 数据模型类对应 blog_posts 表;

    因此 Eloquent 将会假设 Article 模型被存储记录在 articles 数据表中。如果你需要指定自己的数据表,则可以通过 table 属性来定义,如:

    
    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Article extends Model
    {
        protected $table = 'my_articles';
    }
    
    

    配置文件简要说明

    文件名称 配置类型
    app.php 应用相关,如项目名称、时区、语言等
    auth.php 用户授权,如用户登录、密码重置等
    broadcasting.php 事件广播系统相关配置
    cache.php 缓存相关配置
    database.php 数据库相关配置,包括 MySQL、Redis 等
    filesystems.php 文件存储相关配置
    hashing.php 加密算法相关设置
    logging.php 日志记录相关的配置
    mail.php 邮箱发送相关的配置
    queue.php 队列系统相关配置
    services.php 放置第三方服务配置
    session.php 用户会话相关配置
    view.php 视图存储路径相关配置

    相关文章

      网友评论

          本文标题:Laravel 框架杂项

          本文链接:https://www.haomeiwen.com/subject/uxlzodtx.html