掌握 Laravel 命名约定:简洁且可维护的代码

目录

  • Laravel 命名约定简介
  • 模型:PascalCase 和单数名称
  • 控制器:带后缀的 PascalCase
  • 路线:描述性蛇形命名法名称
  • 迁移:蛇形命名法表名
  • Blade Views:Snake_Case 文件
  • 数据库列:一致的 Snake_Case
  • 验证规则:camelCase 方法和键
  • Laravel 项目的 SEO 最佳实践
  • 结论和最佳实践
  • 介绍

    Laravel 的命名约定对于干净、可维护且可扩展的应用程序至关重要。通过在模型、控制器、路由、迁移、视图和数据库架构中遵守这些标准,开发人员可以简化协作和调试。本指南提供了逐步的动手讲解,并附有掌握这些约定的示例。

    1. 模型

    在 Laravel 中,模型名称应为单数,并采用 **PascalCase** 格式。惯例是模型类名应与相应的数据库表名以 **蛇形命名** 格式匹配。

    例子:

    // Model: app/Models/BlogPost.php
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class BlogPost extends Model
    {
        protected $table = 'blog_posts'; // Convention is to use snake_case table names
    }
  • 模型类:BlogPost (单数,PascalCase)。
  • 表名称:blog_posts(复数,snake_case)。
  • 解释:

  • BlogPost 类遵循 PascalCase,而它所代表的表遵循 snake_case (blog_posts)。
  • 默认情况下,Laravel 将模型名称的复数形式作为表名,因此 BlogPost 映射到 blog_posts。
  • 2. 控制器

    控制器名称应采用 **PascalCase** 格式并以“Controller”结尾。

    例子:

    // Controller: app/Http/Controllers/BlogPostController.php
    namespace App\Http\Controllers;
    
    use App\Models\BlogPost;
    use Illuminate\Http\Request;
    
    class BlogPostController extends Controller
    {
        public function index()
        {
            $posts = BlogPost::all();
            return view('blog.index', compact('posts'));
        }
    
        public function show($id)
        {
            $post = BlogPost::findOrFail($id);
            return view('blog.show', compact('post'));
        }
    }

    解释:

  • 该控制器名为 BlogPostController,遵循将 Controller 以 PascalCase 格式附加到模型名称的约定。
  • index() 和 show() 等方法遵循 camelCase 方法名称约定。
  • Laravel 中的命名约定总结:

  • 模型:Singular、PascalCase(例如 BlogPost)。
  • 控制器:PascalCase,以 Controller 结尾(例如,BlogPostController)。
  • 路线:描述性,蛇形命名(例如,blog.index,blog.show)。
  • 迁移:YYYY_MM_DD_HHMMSS_create_table_name.php,表名采用蛇形命名法(例如,blog_posts)。
  • 视图:文件名采用 snake_case 形式(例如,index.blade.php)。
  • 数据库列:snake_case(例如,author_name、published_at)。
  • 验证规则:方法名称采用 camelCase,输入键采用 snake_case。
  • 结论

    采用 Laravel 的命名约定可确保应用程序的一致性、可读性和易用性。无论您是管理模型、设置迁移还是定义路由,遵循这些最佳实践都将简化开发、减少错误并促进协作编码环境。