laravel命名规范

​1、数据库命名规范

1)倾向使用复数名词作为表名,例如 users
2)推荐使用三个小写字母以上作为数据库表前缀,例如 yascmf_
3)数据库表默认使用 utf8_unicode_ci 作为排序规则
4)数据表名表字段 推荐使用全小写英文字母 ,单词之间采用下划线(_)作为分隔符;数据库字段应避免使用MySQL关键字(如 desc、null、count与order等);数据库表级极端在设计是硬体哪家与保留注释(几COMMENT)内容
5)SQL语句编写中,凡事SQL语句的关键字一律大写,如:SELECT、ORDER BY、GROUP BY、FROM、WHERE、UPDATE、INSERT INTO、SET、BEGIN、END等
示例:

DROP TABLE IF EXISTS `yascmf_users`;
CREATE TABLE `yascmf_users` (
  `id` int(12) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `username` varchar(20) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户登录名',
  `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户密码',
  `nickname` varchar(20) COLLATE utf8_unicode_ci NOT NULL COMMENT '用户屏显昵称,可以不同用户登录名',
  ......
  `deleted_at` datetime DEFAULT NULL COMMENT '被软删除时间',
  `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
  `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '修改更新时间',
  `is_lock` tinyint(3) NOT NULL DEFAULT '0' COMMENT '是否锁定限制用户登录,1锁定,0正常',
  `confirmation_code` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '确认码',
  PRIMARY KEY (`id`),
  KEY `nickname_index` (`nickname`),
  UNIQUE KEY `user_username_unique` (`username`),
  UNIQUE KEY `user_email_unique` (`email`),
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户表';

2、项目目录与文件命名

1)控制器文件名

  • 控制器文件与类命名遵循官方约束:类名.php
  • 类名称声明必须符合StudlyCaps(大写驼峰拼写法)

2)控制器类方法命名
RESTful资源控制器,相应的方法采用其默认命名规则

index() //index方法对应资源列表页面
create() //create方法对应创建资源页面
show($id) //show方法对应特定id资源页面

普通控制器
推荐使用HTTP动作(如get|post|delete)+资源|行为 的驼峰命名规范(小写驼峰拼写法)

public funcion getLogin()
{
    return View::make('login');
}

3)视图文件名
视图文件或文件夹采用全小写英文命名单词间采用下划线(_)作为分隔符。Blade视图模版请带上 blade 点缀作为文件名。
对于 RESTful资源控制器 相关视图文件,遵循官方默认命名,如:

app/
    views/
        article/
            create.blade.php
            index.blade.php
            show.blade.php
        setting_type/
            create.blade.php
            ......    

在控制器中调用视图遵循点分调用规则,如:

 public function getCustomerList(){
    return View::make('customer.index'); 
     //返回位于`app/views/customer/index.blade.php`的视图
 }
 public function index(){
     return View::make('setting_type.index'); 
     //返回位于`app/views/setting_type/index.blade.php`的视图
 }

4)Blade 标签的使用
Blade 标签使用双或三大括号作为界定符,为了避免模版编译 compiled 失败,现约定大括号标签中的变量或函数应与界定符之间空一格,如:

Hello, {{{ $name }}}.
The current UNIX timestamp is {{{ time() }}}.

Blade 标签应注意(括号或表达式)匹配,不匹配可能会造成模版输出错误。

如使用 @if 语句之后,必须使用 @endif 结束该标签。

@if (count($records) === 1)
    I have one record!
@elseif (count($records) > 1)
    I have multiple records!
@else
    I don't have any records!
@endif

@unless (Auth::check())
    You are not signed in.
@endunless

5)常规模型(Model)文件命名
这里所说的常规模型是指业务不复杂的数据表模型,针对业务复杂的模型需要自行扩展中间层模型。

Laravel 默认的 Eloquent ORM 模型放置在 app/models 目录下,Laravel
模型默认会操作对应名称为「类名称的小写复数形态」的数据库表,如名为 User.php 的模型默认会操作名为 users 的数据表。

常规模型命名遵循 Laravel 默认规范,如操作 setting_type 数据表的模型,我们可以这样定义:

class SettingType extends Eloquent {

    protected $table = 'setting_type';

    public $timestamps = false;  //关闭自动更新时间戳

    public function setting()
    {
        return $this->hasMany('Setting');
    }

}

6)复杂业务逻辑模型的文件命名
7)自定义函数(helper)
位于app/functions.php文件里,是在 bootstrap/autoload.php 中手动引入加载的。

......
require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/../app/functions.php'; // 引入自定义函数库
......

参考文档:http://douyasi.com/laravel/laravel_project_rules.html

laravel框架文档:http://www.golaravel.com/laravel/docs/4.1/

laravel框架下载:http://www.golaravel.com/download/

php开发编码 规范 参考文档:
https://laravel-china.org/topics/2079/psr-specification-psr-2-coding-style-specification

你可能感兴趣的:(框架)