Почему ZEND везде использует интерфейсы и абстрактные классы, а Codeigniter вообще их не использует? - PullRequest
2 голосов
/ 19 февраля 2011

ки. Так что я перебираю каталог Codeigniter 2.0 в поисках ключевых слов interface или abstract . Я нигде не мог найти Codeigniter, используя скелеты классов. AFAIK и вижу - CI использует только конкретные реализации классов.

Не плохо ли использовать тезисы и интерфейсы? Почему Zend Framework использует их для каждого случая, а Codeigniter просто игнорирует это соглашение?

Ответы [ 2 ]

5 голосов
/ 19 февраля 2011

Zend регулярно переписывается, внедряя новейшие функции PHP5, которые им очень нравятся.

CodeIgniter всегда был о переносимости и минимальных требованиях и был написан, когда PHP5 все еще находился в разработке с очень PHP4-подходом к своей архитектуре.

Теперь, когда CodeIgniter 2.0 вышел, поддержка PHP4 прекращена, и требование повышено до 5.1.6. Это не означает, что каждый отдельный файл был переписан на PHP5, потому что в этом нет особого смысла. Новые функции будут использовать PHP5, и мы работаем над обновлением некоторых фреймворков, при этом изо всех сил стараясь не сломать вещи для приложений, использующих 2.0.

2 голосов
/ 19 февраля 2011

Масштабируемость - это разница.

Кроме того, AFAIK Code Igniter основан на PHP4.

Редактировать после комментария:

Говоря на основе , я имею в виду, что он был написан ранее для PHP4, поэтому он не использует все новейшие функции PHP5 из ядра.

Это касается не только функций ООП, но и некоторых шаблонов проектирования, которые описаны в SPL .

...