?
Espricho是PHP7的LightWieght框架,基于具有内置模块化系统支持的Symfony组件。
Espricho受到Laravel和Yii2的极大启发。它的模块化类似于YII2,但由于Symfony DI容器,它具有像Laravel这样的功能强大的容器! Espricho是燕子鸟(在克曼尼方言)的波斯名称。
mafsho是一种命令行工具,它提供了许多功能,例如生成器,可以使用Espricho更轻松地工作。这是Farsi词的意思是袋子(在克马尼方言)。您可以使用php mafsho命令运行它。
Espricho具有这样的结构:
├── Bootstrap
├── Components
├── Configs
├── Console
├── Controllers
├── Databases
├── mafsho
├── Models
├── Modules
├── Public
└── Runtime
我们在继续谈论每个人。
Espricho支持环境变量的定义(依赖运行环境的变量)。您应该将它们放在.env (或.env.dist是应用程序dist )文件上。如果.env文件上的所有键均为上限,并从该部分名称开始,这是一个好主意。例如,所有Elasticsearch密钥都从ELASTICSEARCH_前缀开始。
另一方面,您可以在Config/*.yaml文件中定义应用程序级别的配置。最后,这两种配置都可以从sys()->getConfig('dot.notationed.key', 'default')访问。
在sys.yaml文件上,您可以设置系统的引导参数。作为主要结果,您可以在loader密钥下定义系统模块加载程序。
sys :
name : Espricho
version : 1.0
max_log_files : 10
loader :
- auth
- db
- modules
- redis
- elasticsearch数据库配置应在.env项目的根上设置。其内容的样本类似于此:
# Database Configurations
DB_DRIVER = mysql
DB_HOST = localhost
DB_PORT = 3306
DB_USERNAME = root
DB_PASSWORD = root
DB_DATABASE = db_name 要定义模块,您必须将模块放在Modules文件夹下,并在其上定义结构。样本结构可以是这样的:
Modules
└── Shop
├── Configs
│ └── routes.yaml
└── Controllers
└── ProductController.php
每个模块都有其自己的路由Configs规则,必须在routes.yaml上定义它们。在定义模块后,您可以在项目根的Configs文件夹中的modules.yaml上注册。此配置文件的示例内容是:
modules :
shop :
folder : Shop
route_prefix : sh每个模块都可以具有其子模块,并且必须在模块目录的Configs文件夹中的modules.yaml上定义它们。路线的定义相似。