Laravel 框架杂项

2024-02-17  本文已影响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 模型默认情况下会使用类的「下划线命名法」与「复数形式名称」来作为数据表的名称生成规则。如:

因此 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 视图存储路径相关配置
上一篇下一篇

猜你喜欢

热点阅读