dersonsena / yii2-skeleton
yii2基本模板的新方法
Requires
- php: >=8
- ext-intl: *
- ext-json: *
- vlucas/phpdotenv: ^5.3
- yiisoft/yii2: ~2.0.45
- yiisoft/yii2-bootstrap5: ~2.0.2
- yiisoft/yii2-swiftmailer: ~2.1.3
Requires (Dev)
- dg/bypass-finals: ^1.3
- fakerphp/faker: ^1.14
- friendsofphp/php-cs-fixer: ^3
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
- symfony/browser-kit: >=2.7 <=4.2.4
- yiisoft/yii2-debug: ~2.1.0
- yiisoft/yii2-gii: ~2.1.0
This package is auto-updated.
Last update: 2024-08-29 05:49:41 UTC
README
Yii 2 Skeleton
Yii 2 Skeleton 是基于 Yii 2 开发的设计骨架的新方法。
创建这个新模板的动机是为了尝试在 src 目录内组织包,将所有类放在那里,即主要应用程序代码所在的位置。
需求
本项目模板的最低要求是您的 Web 服务器支持 PHP 8+。
资源
- Nginx + PHP 8.1 通过 Docker 使用 Webdevops 镜像
- PHP Unit 9.5
- Yii2 Bootstrap 5 扩展
- PHP Codesniffer 3.5
- PHP Codesniffer Fixer 3
安装
通过 Composer 安装
如果您没有 Composer,您可以通过访问 getcomposer.org 上的说明进行安装。
然后,您可以使用以下命令安装此项目模板
php composer.phar create-project dersonsena/yii2-skeleton skeleton
您的环境变量
复制 .env.sample 文件,您可以在终端中使用 cp .env.sample .env 来执行此操作。
您可以在 .env 文件中放置您的环境设置,如下所示(注意样本文件已准备好基本使用)
# --------- # Docker # --------- PROJECT_NAME=yii2-skeleton DOCKER_APP_PORT=8080 DOCKER_APP_SSL_PORT=443 DOCKER_MYSQL_PORT=3306 XDEBUG_REMOTE_PORT=9000 # --------- # Application # --------- YII_ENV=dev YII_DEBUG=true REQUEST_COOKIE_VALIDATION_KEY=YOUR_VALIDATION_KEY ADMIN_PASSWORD= # APP_TIMEZONE=America/Sao_Paulo # APP_LANGUAGE=pt_BR APP_BASE_URL=https://:8088 # --------- # Database # --------- DB_HOST=your-db-host DB_USERNAME=root DB_PASSWORD=secret DB_DATABASE=your-db-name DB_DATABASE_TEST=your-test-db-name DB_SCHEMA_CACHE_DURATION=60 # --------- # Mailer # --------- SMTP_HOST= SMTP_PORT=465 SMTP_USERNAME= SMTP_PASSWORD= SMTP_ENCRYPTION=ssl
注意:注释中的环境变量是可选的,您在此处设置的值是其默认值。
运行您的应用程序
在更改任何内容之前,将 PROJECT_NAME 环境变量更改为您的项目名称/别名。这个名称将被用于前缀应用程序容器和其他内容。
要启动您的应用程序并启动容器,只需运行以下命令
make run
上述命令将启动 2 个 Docker 容器: yii2-skeleton-app(Nginx + PHP 8.1)和 yii2-skeleton-db(MySQL)
如果您已设置 DOCKER_APP_PORT 环境变量为 8000,则可以通过以下 URL 访问您的应用程序
https://:8000
COHESIVE CONTROLLER
为了遵循最佳编程实践,此模板具有一种名为 CohesiveController 的控制器类型,以帮助您创建一个具有单个操作(即 handle() 方法)和单个职责的控制器类。
要创建一个统一的控制器,请转到 config/routes.php 并添加您的路由,如下所示
<?php return [ // other routes... 'specific/route/to/cohesive/a/controller' => 'cohesive-xpto-routine' ];
下一步是创建您的 CohesiveXptoRoutineController 类,从 App\Core\Controller\CohesiveController 继承并实现 handle() 方法,如下所示
<?php namespace App\Controllers; use App\Core\Controller\CohesiveController; class CohesiveXptoRoutineController extends CohesiveController { public function handle() { // your cohesive and specific implementation here =) } }
最后,访问您的统一操作:https://:8080/specific/route/to/cohesive/a/controller
THE USEFUL MAKEFILE
Makefile 文件包含多个命令,有助于日常工作。您可以在容器内执行命令,只需在终端中输入几个字母。
如果您想安装或更新应用程序的依赖项,您应该做类似以下的事情
docker exec -it YOUR_CONTAINER_NAME composer install -o
为了避免编写所有这些,请使用 make
make install
感谢 @wilcorrea 向我展示这个简单但实用的方法。
骨架的 makefile 包含以下命令
-
install
使用优化自动加载参数执行 composer install
示例:make install -
require
使用PACKAGE参数执行composer require
示例:make PACKAGE="vendor/package" require -
dump
运行composer命令
dump-autoload
示例:make dump -
migrate
别名,用于在应用容器中执行
yii migrate并运行所有未应用迁移
示例:make migrate -
migrate-create
在项目中创建一个新的迁移
示例:make NAME="my-cute-migration" migrate-create -
migrate-down
回滚最后一个迁移
示例:make migrate-down -
cache-clear
只需在应用容器中运行
yii cache/flush-all
示例:make cache-clear -
db-backup
在项目根目录生成一个
backup.sql,进行热备份
示例:make db-backup -
db-restore
将项目根目录中的
backup.sql导入到数据库容器
示例:make db-restore