使用 Laravel 快速构建网站系列 —— Laravel 技巧站:Laravel Tricks

Laravel Tricks

1、简介

Laravel Tricks 由 StidgesMaksim Surguy创建,是一个非官方的为Laravel框架开发者提供Laravel小技巧&小贴士的网站

2、官方网站

http://laravel-tricks.com

3、GitHub

https://github.com/CodepadME/laravel-tricks

4、文档

4.1 目的&特性

我们创建该GitHub仓库的目的在于提供一个使用Laravel框架开发的实际网站的源代码,并为其架构实现好的设计模式。

Laravel Tricks的特性:

  • 多用户平台,允许注册用户发布代码和描述及其简短摘要
  • 排序和搜索
  • 用户提交的每一个条目都包含分类和标签
  • 基于OAuth 2 使用GitHub注册和登录
  • 集成 Disqus进行评论
  • 自定义Bootstrap主题
  • 基于AJAX的收藏功能
  • 集成 Gravatar头像
  • 使用 jQuery FileAPI进行头像上传和裁剪
  • 使用 Intervention Image处理服务器端的头像上传
  • 使用 Masonry实现Pinterest风格的格子
  • 使用 Laravel Auto Presenter包实现 Presenter类

4.2 准备工作

Laravel Tricks网站要求服务器上PHP版本为5.4+并且安装了MCrypt扩展。

用于为应用存储数据的数据库引擎可以是Laravel支持的任意类型:MySQL、Postgres、SQLite和SQL Server。

4.3 快速入门&安装

如果你想要基于本GitHub仓库进行修改并为你所用,首先下载本仓库,创建一个空的数据库,然后在app/config目录下稍作配置,就可以正常使用了!

配置

  • 打开 app/config/database.php并配置数据库连接设置
  • bootstrap/start.php文件中配置主机名以匹配你自己机器的主机名:
    $env = $app->detectEnvironment(array(
    'local' => array('your-machine-name'), // 编辑这一行
    ));
    
  • 如果你想要使用GitHub OAuth进行登录和注册,确保创建了GitHub应用,并在 app/config/social.php中配置了相应的client IDsecret。此外,确保你使用 http://<your-site.com>/login/github作为认证回调URL

完成上述配置后你就可以通过运行下面的命令来填充数据库了。

安装

进入项目根目录并运行以下三个命令:

composer install
php artisan migrate
php artisan db:seed

以上操作将分别会安装所有Composer依赖、创建数据库表结构以及使用一些示例数据填充数据库,这样你就可以访问该项目了。

4.4 文档说明

本应用的代码包含了大量文档注释以帮助你了解代码结构以及遵循的编码标准。

项目结构

我们移除了 app/models目录并创建了一个自定义的命名空间,该命名空间容纳了应用的所有域名类。

此外,我们为 app/Controller目录定义了命名空间,这样不管什么时候创建新的控制器不需要每次执行 composer dump-autoload

应用的域名类位于 app/Tricks目录,其中包含了应用的所有业务逻辑。控制器仅仅调用这些类来执行应用任务。

app/Tricks目录结构如下:

  • Exceptions:包含域名类抛出的所有异常,所有异常(除了 GithubEmailNotVerifiedException)都继承自 Tricks\AbstractNotFoundException类。这使得处理404错误更简单(该处理可以在 app/start/global.php文件中找到)。
  • Facades:包含所有可以在整个应用中使用的自定义门面类。
  • Presenters:包含所有使用 Laravel Auto Presenter 包的Presenter类。这提供了一种干净的方式将业务逻辑和视图分离并将其封装到同一个地方。
  • Providers:包含应用所有的服务提供者类,其中可以注册自定义组件到服务容器,该特性和许多其他优点一样,简化了注入类/实现的处理并且允许创建门面。
  • Repositories:包含所有的Repository类,Repository用于抽象持久化层的交互,这将会导致你的类与ORM(如Eloquent)之间松耦合,所有的Repository实现自一个位于Repository根目录的接口,从而使得切换实现很简单。
  • Services:该目录被分割成多个子目录:
    • Forms:包含表单类,用于验证用户从表单提交的输入
    • Navigation:包含导航构建类,用于从一个配置文件构建站点的导航,该配置文件位于 app/config/navigation.php
    • Social:包含GitHub和Disqus的社会化集成类,GitHub类用于GitHub登录和注册处理,Disqus类用于获取评论数
    • Upload:包含 ImageUploadService类,该类处理头像的上传和缩放。

编码标准

Laravel Tricks 兼容RSR-2,PSR-2是PHP-FIG制定的编码标准,旨在统一PHP代码编写 规范,以便同一项目的协作者采取同样的标准,从而使得代码可读性更强。

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长