cmsx/fw 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cmsx/fw

Composer 安装命令:

composer require cmsx/fw

包简介

CMSx Framework

README 文档

README

Идеология

  1. Полиморфизм. Наследование. Инкапсуляция. Никакой магии.
  2. Никаких конфигов. Нигде.
  3. Максимум подсказок в IDE (PHPStorm).

Пояснения

Всё следует упрощать до тех пор, пока это возможно, но не более того. © Эйнштейн

1. Полиморфизм. Наследование. Инкапсуляция. Никакой магии.

Фреймворк старается быть максимально незаметным. Нет никаких сложных соглашений, не обязательно читать тонны документации. Можно просто взять пример и начать писать проект, при необходимости подключая сторонние компоненты или просто замещая части фреймворка, ведь он полностью состоит из подключаемых независимых компонентов.

При этом, основным способом достижения гибкости и производительности являются три базовых принципа ООП, направленные на производство легкого кода, который легко читать и поддерживать, а не на усложнение концепций и многостраничных соглашений и мануалов.

2. Никаких конфигов. Нигде.

Настройка системы производится с помощью вызовов методов, настраивающих окружение, а конфигурирование форм, схемы БД и т.п. осуществляется с помощью наследования базовых классов и их дополнительной инициализации. Таким образом IDE сама подсказывает доступные опции и шанс опечатки или ошибки довольно невысок. И опять же, не нужно лезть в документацию, чтобы посмотреть какие опции есть по этому пункту.

Пример настройки окружения:

// Настройка подключения к БД. Созданное соединение автоматически сохраняется в "реестр".
X::AddConnection('localhost', 'cmsx', 'qwerty', 'cmsx', 'utf8');

// Прописываем путь к папке с шаблонами
Template::SetPath('/my/path');

Пример настройки формы:

class MyForm extends Form
{
  function init() {
    $this
      ->addInput('name', 'Имя')
      ->setIsRequired(true);
    $this
      ->addSelect('city')
      ->setOptions('Москва', 'Киев', 'Минск')
    $this
      ->addInput('email', 'E-mail')
      ->setRegexp('/[some_regexp]/uis');
  }
}

3. Максимум подсказок в IDE (PHPStorm).

В CMSx Framework если где-либо можно получить объект, по нему с большой вероятностью будет доступен автокомплит, т.к. не используются языковые конструкции вида:

$app['DB']->query()
Doctrine::getTable('JobeetJob')

Т.к они не позволяют IDE определить, какой именно объект используется и соответственно выдать подсказки для автокомплита. Кроме этого, там где необходимо прописаны PHPDoc комментарии @return и каждый метод, за исключением совсем очевидных, снабжен кратким комментарием, позволяющим понять суть без изучения кода.

统计信息

  • 总下载量: 49
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2012-12-27