sqrt-pro/framework

SQRT 框架

0.2.2 2016-03-20 15:48 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:28:37 UTC


README

一切应尽量简化到可能,但不要过度。© 爱因斯坦

理念

  1. 多态。继承。封装。没有魔法。
  2. 没有文本配置。
  3. 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,每个方法(除了非常明显的)都有简短注释,可以帮助理解其目的,而无需研究代码。