Laravel 5.7 模块化结构应用程序
在这一节中,我们将创建一个模块化结构的应用程序。我们将使用 Laravel 5.7 来实现这一点。在这里,我们将使用 nWidart/laravel-modules 包来创建模块化结构的设计模式。该包用于设置命令,以便快速简单地创建一个模块。使用该功能,每个模块将创建一个单独的文件夹。
在我们开始使用 Laravel 时,我们已经了解了 Laravel 的结构,如 console、views、helper、controller、model、providers、migration 等等。但当时我们意识到,通过把它变得模块化,我们可以让它更易于理解和使用。如果为 Laravel 的每个 CRUD 指定的项目,如 item、country、product、city、state 等都创建了一个模块,那将更加美妙,因为这样一来,我们可以在应用程序中轻松地重复使用它。模块化结构方法非常好,所以它更有用。
在我们的 Laravel 应用程序中,我们将使用 laravel-modules composer 包来创建模块化结构。在 Laravel 应用程序中,我们可以通过使用其他许多包来创建模块化结构,但是 laravel-modules 包用于创建 “Module” 目录和子目录,这非常简单和易于理解。该文件夹中有许多列出的内容,具体如下所述:
- 实体
- 配置
- 测试
- 数据库
- 路由
- 提供
- Http
- 控制台
当我们需要使我们的应用程序模块化时,这一节将非常有用。为此,我们将安装 laravel-modules composer 的服务提供商和包。为了安装 laravel-modules 包,可以使用以下命令:
设置
在设置过程中,我们将 安装 laravel-modules 包 。以下命令将用于此操作:
composer require nwidart/laravel-modules
之后,我们将 发布配置文件 。将使用以下命令来完成此操作:
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
然后我们将使用 autoload file with Adding:composer.json 文件。
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/"
}
}
}
之后,我们将按照以下方式执行以下命令:
composer dump-autoload
现在我们可以使用laravel-module包来创建一个模块。现在我们将使用以下语法来创建新的包。
创建模块的语法:
php artisan make:module module_name
创建模块示例:
php artisan make:module Category
当我们成功运行上述代码时,我们将打开我们的app文件夹,并看到新创建的Modules目录和Migration。其结构描述如下:
app/
bootstrap/
vendor/
Modules/
├── Category/
├── Assets/
├── Config/
├── Console/
├── Database/
├── Migrations/
├── Seeders/
├── Entities/
├── Http/
├── Controllers/
├── Middleware/
├── Requests/
├── Providers/
├── CategoryServiceProvider.php
├── RouteServiceProvider.php
├── Resources/
├── assets/
├── js/
├── app.js
├── sass/
├── app.scss
├── lang/
├── views/
├── Routes/
├── api.php
├── web.php
├── Repositories/
├── Tests/
├── composer.json
├── module.json
├── package.json
├── webpack.mix.js
我们可以在上述应用程序中看到视图、模型、路由、控制器、助手、数据库和存储库。如果我们想要更多的模块,可以轻松地创建它们。为了运行上述代码,我们将运行以下命令:
php artisan serve
现在我们可以使用浏览器打开下面的URL:
http://localhost:8000/category
打开这个之后,我们可以看到以下的输出: