douglaszuqueto / laravel-5.1-ddd
Laravel DDD 5.1
1.0.0
2016-06-08 01:34 UTC
Requires
- php: >=5.5.9
- laravel/framework: 5.1.*
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-23 12:51:43 UTC
README
如何将默认 Laravel 应用程序组织为 DDD 架构的步骤
- 1. 剪切 app 文件夹内的所有文件;
- 2. 在 app 文件夹内创建一个名为 Core 的文件夹,并将剪切的文件粘贴进去;
- 3. 将 Core 文件夹内所有文件的命名空间重命名为 App\Core\;
- 4. 在上一步的相同文件夹内,在 Providers 文件夹中打开 RouteServiceProvider,找到 "require app_path('Http/routes.php');",注意路径已经不再是这样,因为现在该文件位于 Core 文件夹内,所以将路径更改为 require app_path('Core/Http/routes.php');;
- 5. 回到项目根目录,打开 bootstrap 文件夹中的 app.php 文件;
$app->singleton( Illuminate\Contracts\Http\Kernel::class, App\Http\Kernel::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class ); $app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, App\Exceptions\Handler::class );
首先,像前面步骤一样,在命名空间中添加 Core。
查看结果
$app->singleton( Illuminate\Contracts\Http\Kernel::class, App\Core\Http\Kernel::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, App\Core\Console\Kernel::class ); $app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, App\Core\Exceptions\Handler::class );
-
6. 在项目根目录的 config 文件夹中打开 app.php 文件,以重命名一些 Service Providers;
从 ->
App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class,
到 ->
App\Core\Providers\AppServiceProvider::class, App\Core\Providers\AuthServiceProvider::class, App\Core\CProviders\EventServiceProvider::class, App\Core\CProviders\RouteServiceProvider::class,
-
7. 回到 app 文件夹,我们首先创建一个基础域。为此,创建以下结构;
- 域
- 用户
- 实体
- 用户
- 域
-
8. 创建一个名为 用户 的实体,并请记住命名空间应遵循以下格式: App\Domains\User\Entities,这样就可以尊重已建立的层次结构;
-
9. 现在,我们将创建一个应用程序,为此,保持处于 app 文件夹内,构建以下结构;
- 应用程序
- 用户
- Http
- 控制器
- UserController.php
- routes.php
- 控制器
- 提供者
- UserServiceProvider.php
- Http
- 用户
- 应用程序
UserServiceProvider 文件是此应用程序的主要配置文件,其中您将指向 控制器 的路径以及 路由 文件;
下面,请查看完整的文件。
<?php namespace App\Applications\User\Providers; use Illuminate\Routing\Router; use Illuminate\Support\ServiceProvider; class UserServiceProvider extends ServiceProvider { protected $namespace = 'App\Applications\User\Http\Controllers'; public function boot(Router $router) { $this->registerRoutes($this->app['router']); } /** * Register the service provider. * * @return void */ public function register() { } protected function registerRoutes(Router $router) { $router->group(['namespace' => $this->namespace], function ($router) { require app_path('Applications/User/Http/routes.php'); }); } }
完成此操作后,不要忘记在 config/app.php 文件中注册 ServiceProvider。
App\Applications\User\Providers\UserServiceProvider::class,
- 10. 使用 artisan 或外部服务器运行项目,查看是否一切正常。如果您想进行更多迭代,创建一个路由和一个控制器,并测试应用程序。