sqrt-pro / framework
SQRT 框架
0.2.2
2016-03-20 15:48 UTC
Requires
- php: >=5.5.0
- sqrt-pro/auth: ~0.1
- sqrt-pro/db: ~0.1
- sqrt-pro/form: ~0.1
- sqrt-pro/kernel: dev-master
- sqrt-pro/navigator: ~0.1
Requires (Dev)
- captbaritone/mailcatcher-codeception-module: ~1.0
- codeception/codeception: ~2.0
- flow/jsonpath: ~0.3
- mockery/mockery: ~1.0
This package is not auto-updated.
Last update: 2024-09-24 03:28:37 UTC
README
一切应尽量简化到可能,但不要过度。© 爱因斯坦
理念
- 多态。继承。封装。没有魔法。
- 没有文本配置。
- IDE(PHPStorm)中的提示最多。
安装
使用 Composer 进行安装。
php composer.phar create-project sqrt-pro/framework:dev-master path/to/install
说明
1. 多态。继承。封装。没有魔法。
框架力求尽可能地低调。没有复杂的约定,不需要阅读大量文档。可以简单地参考示例并开始编写项目,在需要时添加外部组件或替换框架的某些部分,因为框架完全由 可连接的独立组件 组成。
在此过程中,实现灵活性和性能的主要方式是面向对象编程的三个基本原则,旨在生成易于阅读和维护的轻量级代码,而不是使概念复杂化或多页面的约定和手册。
2. 没有文本配置。
系统设置通过调用设置环境的函数来完成,而表单、数据库模式等的配置通过继承基本类及其额外初始化来实现。这样,IDE 本身就会提示可用的选项,出错或误打的机会相对较低。而且,不需要查阅文档就可以查看此点的选项。
设置表单示例
class MyForm extends Form { function init() { $this->addInput('name', 'Имя') ->addFilter('!^[a-z]+$!i'); $this->addCheckbox('is_active', 'Вкл'); $this->addSelect('status', 'Статус') ->setOptions(array('new' => 'Новый', 'old' => 'Старый')); $this->addFile('image', 'Изображение') ->setIsRequired(); } }
3. IDE(PHPStorm)中的提示最多。
在 SQRT 框架中,如果可以在任何地方获取对象,则很可能有自动补全,因为不使用类似以下语言的构造
$app['DB']->query()
Doctrine::getTable('JobeetJob')
因为这些不允许 IDE 确定使用的是哪个对象,并相应地提供自动补全提示。此外,在需要的地方使用了 PHPDoc 注释 @return
,每个方法(除了非常明显的)都有简短注释,可以帮助理解其目的,而无需研究代码。