arsengoian / viper-framework
一个轻量级的多用途PHP MVC框架
1.2.2
2022-05-30 16:46 UTC
Requires
- php: >=7.1.0
- ext-json: *
- ext-pdo: *
- jenssegers/date: v3.5.0
- smottt/wideimage: 1.1.3
Suggests
- pimax/fb-messenger-php: Useful for FB bots creation(~1.0)
This package is auto-updated.
Last update: 2024-09-28 09:19:42 UTC
README
Viper是一个轻量级的通用PHP MVC框架,拥有自己的模型和模板引擎
开始使用Viper开发就像在控制台中输入一样简单
composer create-project arsengoian/viper PROJECT_NAME dev-master
并配置数据库凭证。
要查看由该命令(或贡献)部署的应用程序构建,请查看:https://github.com/arsengoian/viper
配置
Web应用程序通过位于config/
目录的YAML文件数组进行配置。它们包含每个设置的指令列表。local.yaml
包含与当前服务器环境相关的配置,而global.config
则设置整体应用程序设置。
可以通过Config
类在任何时候访问设置
if (Config::get('DEBUG')) // From local.yaml -> local.yaml and global.yaml don't need a preffix 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 Server
- 支持其他SQL方言
- 众多功能和结构改进
贡献和发展
由于框架处于早期开发阶段,它可能具有不可逆的结构变化,不具有向后兼容性。
如果您也热衷于使PHP开发更加优雅和直观,请为该项目做出贡献 =)