arsengoian / viper
Viper 的部署包 - 一个简单易用的多功能 PHP MVC 框架
0.2
2018-02-20 12:29 UTC
Requires
- php: >=7.1.0
- arsengoian/viper-blade: dev-master
- arsengoian/viper-framework: dev-master
- pimax/fb-messenger-php: v1.0
This package is auto-updated.
Last update: 2024-09-19 15:07:17 UTC
README
Viper 是一个轻量级的通用 PHP MVC 框架,具有自己的模型和模板引擎
开始使用 Viper 进行开发就像在控制台中输入一样简单
composer create-project arsengoian/viper PROJECT_NAME dev-master
并配置数据库凭据
配置
Web 应用程序由位于 config/
目录的 YAML 文件数组配置。它们包含每个设置的指令列表。local.yaml
包含与当前服务器环境相关的配置,而 global.config
设置整体应用程序设置。
可以使用 Config
类随时访问设置
if (Config::get('DEBUG')) // From local.yaml -> local.yaml and global.yaml don't need a prefix return Config::get('Bots.VERIFY_TOKEN') // From bots.yaml
特性
YAML 路由
请求会自动路由,例如对 http://website.com/chairs
的 GET 请求将调用 ChairsController
的 get
方法
路由示例
welcome: DefaultController # directs DOMAIN/welcome -> DefaultController::get($http_params) hello: DefaultController.main # directs DOMAIN/hello -> DefaultController::main($http_params) products: # 1-level hierarchies are also supported parse: DefaultController count: DefaultController.main
易于使用的控制器和内置验证
实现 POST 请求的控制器函数
public function post (...$args): ?Viewable { $v = new Required($this -> params()); // Create validator $v -> email('email'); // Validate "email" field Client::registerWithImages($this -> params(), $this -> files()); // Create new model in the database return new RedirectView('/'); // Redirect to main page }
自动完成模型
Viper 自动处理数据库,最大限度地减少手动编辑 SQL 的需要。如下 YAML 设置
allowOverwrite: true fields: fname: VARCHAR(255) NOT NULL lname: VARCHAR(255) NOT NULL email: VARCHAR(255) NOT NULL age: INT NOT NULL img: TEXT NOT NULL
将在需要时创建所需的数据库结构,并在需要时与文件一起更新。
过滤器
将在任何控制器动作之前应用于所有路由
class Application extends \Viper\Core\Application { /** * Defines the list of filters to be run * before any controller actions * @return FilterCollection */ protected function declareFilters (): FilterCollection { return new FilterCollection([ LocalizationFilter::class, Authorization::class ]); } }
日志和实用工具
Viper 支持内置日志和一系列有用的实用工具,包括缓存、高级字符串处理等。
缓存能力
所有视图和解析的 .yaml 文件如果可能,都将从缓存中恢复
早期开发特性
- 后台进程和服务
- Windows 后台任务
- Viper 模板引擎
- 控制台命令
- 完整的 Mysql 支持
- 其他 SQL 语句支持
- 许多特性和结构改进
贡献和开发
由于框架处于早期开发阶段,它可能具有结构不可逆的更改,而不具备向后兼容性。
如果您也对使 PHP 开发更加优雅和直观感到热情,请为该项目做出贡献 =)