1 2013-01-08 16:18:43 (2013-01-08 17:55:45 отредактировано roquie0)

Тема: monstra/Core.php что это за безобразие?

Блуждал по просторам интернета, так сказать и наткнулся на вашу CMS, довольно не плохохие были впечатления от внешнего вида админки, что несоменно порадовало меня. Скачал. Открыл мануал на русском, тот что в гугл доках и принялся читать. Установил, все быстренько настроил, зашел в админку. Все так красиво, слов нет. Потыкал по кнопочкам, то проверил это. Глазу приятно, только верстка косится и едет, если за уголки браузера понятнуть.
Открыл папку в phpStorm, и полез смотреть код, быстро добрался до monstra/Core.php, вот что я увидел:
(Не хочу оскорблять никого, если что)
Почему код в ядре настолько ужасен?

Примеры:

А зачем тогда константы?
...
Да, да - вот эти:

    class Core {
        protected static $instance = null;
        const PRODUCTION  = 1;
        const STAGING     = 2;
        const TESTING     = 3;
        const DEVELOPMENT = 4;
//.......

И тут... где же они?

        protected static function loadDefines() {
// тут
            $environments = array(1 => 'production',
                                  2 => 'staging',
                                  3 => 'testing',
                                  4 => 'development');
            $root_defines         = ROOT . DS . 'boot' . DS . 'defines.php';
            $environment_defines  = ROOT . DS . 'boot' . DS . $environments[Core::$environment] . DS . 'defines.php';
            $monstra_defines      = ROOT . DS . 'monstra' . DS . 'boot' . DS . 'defines.php';
            if (file_exists($root_defines)) {
                include $root_defines;
            } elseif(file_exists($environment_defines)) {
                include $environment_defines;
            } elseif(file_exists($monstra_defines)) {
                include $monstra_defines;
            } else {
                throw new RuntimeException("The defines file does not exist.");
            }
        }

и тут.
И ище зачем повторять код???

protected static function loadPluggable() {
           $environments = array(1 => 'production',
                                  2 => 'staging',
                                  3 => 'testing',
                                  4 => 'development');
            $root_pluggable         = ROOT . DS . 'boot';
            $environment_pluggable  = ROOT . DS . 'boot' . DS . $environments[Core::$environment];
            $monstra_pluggable      = ROOT . DS . 'monstra' . DS . 'boot';
            //почему не обернули в отдельную функцию?
            if (file_exists($root_pluggable . DS . 'filters.php')) {
                include $root_pluggable . DS . 'filters.php';
            } elseif(file_exists($environment_pluggable . DS . 'filters.php')) {
                include $environment_pluggable . DS . 'filters.php';
            } elseif(file_exists($monstra_pluggable . DS . 'filters.php')) {
                include $monstra_pluggable . DS . 'filters.php';
            } else {
                throw new RuntimeException("The pluggable file does not exist.");
            }
            if (file_exists($root_pluggable . DS . 'actions.php')) {
                include $root_pluggable . DS . 'actions.php';
            } elseif(file_exists($environment_pluggable . DS . 'actions.php')) {
                include $environment_pluggable . DS . 'actions.php';
            } elseif(file_exists($monstra_pluggable . DS . 'actions.php')) {
                include $monstra_pluggable . DS . 'actions.php';
            } else {
                throw new RuntimeException("The pluggable file does not exist.");
            }
            if (file_exists($root_pluggable . DS . 'shortcodes.php')) {
                include $root_pluggable . DS . 'shortcodes.php';
            } elseif(file_exists($environment_pluggable . DS . 'shortcodes.php')) {
                include $environment_pluggable . DS . 'shortcodes.php';
            } elseif(file_exists($monstra_pluggable . DS . 'shortcodes.php')) {
                include $monstra_pluggable . DS . 'shortcodes.php';
            } else {
                throw new RuntimeException("The pluggable file does not exist.");
            }
        }

Про то, что в конструкторе я вообще промолчу.

public static function exceptionHandler($exception){...}

Почему помешан код html\css\php ? Да еще в ядре, да и в таких масштабах. Зачем тогда вам mvc?

Собаки, сколько раз о них говорили

 @header('Content-Type: text/html; charset=UTF-8');
            @header('HTTP/1.1 500 Internal Server Error');
 @file_put_contents(LOGS . DS . gmdate('Y_m_d') . '.log',
                               gmdate('Y/m/d H:i:s') . ' --- ' . '['.$error_type.']' . ' --- ' . $exception->getMessage() . ' --- ' . 'Exception thrown on line '.$exception->getLine().' in '.$exception->getFile() . "\n",
                               FILE_APPEND);

requiere_once языковая конструкция, для которой скобки ()  совершенно не нужны, также как для include, include_once, require, echo,  etc.

// Load Plugins API module
            require_once(ENGINE . DS . 'plugins.php');
            // Load Shortcodes API module
            require_once(ENGINE . DS . 'shortcodes.php');

Почему синтаксис, правила которого описаны в документации, не соблюдается?
Это малая толика того, что бросилось в глаза...

Поделиться

2

Re: monstra/Core.php что это за безобразие?

>>Блуждал по просторам интернета, так сказать и наткнулся на вашу CMS
ага)) привет с forum.searchengines.ru в конце забыл написать ?

Специально для тебя и твоих друзей новость:
https://twitter.com/AwilumIT/status/288028219477741568
и
https://twitter.com/AwilumIT/status/288388687304216579

Follow me: Twitter | GitHub | Coderwall

Стань спонсором проекта.

Сайт Awilum

Поделиться

3 2013-01-08 17:58:59 (2013-01-08 18:28:11 отредактировано roquie0)

Re: monstra/Core.php что это за безобразие?

Awilum, сюда зашел отсюда
http://forum.dklab.ru/viewforum.php?f=19

ага)) привет с forum.searchengines.ru в конце забыл написать ?

понятия не имею, о ком вы.

Насчет новостей:

Специально для тебя и твоих друзей новость:
https://twitter.com/AwilumIT/status/288028219477741568
и
https://twitter.com/AwilumIT/status/288388687304216579

Мне все равно есть ли русский язык или нет. На английском вполне нормально читается документация.

Что произошло на форуме сеошников?

Поделиться

4 2013-01-08 18:01:00

Re: monstra/Core.php что это за безобразие?

я сюда зашел по поводу кода в cms, вы согласны с моими замечаниями?

Поделиться

5

Re: monstra/Core.php что это за безобразие?

roquie0, эти замечания не актуальны(т.к. как старый код смотришь)

Follow me: Twitter | GitHub | Coderwall

Стань спонсором проекта.

Сайт Awilum

Поделиться

6 2013-01-08 20:30:19

Re: monstra/Core.php что это за безобразие?

Awilum, версия 2.1.3 старый код?

Поделиться

7 2013-01-08 20:34:07

Re: monstra/Core.php что это за безобразие?

roquie0, ну да.

Смотри код в ветках
https://github.com/Monstra/monstra-cms/branches

Follow me: Twitter | GitHub | Coderwall

Стань спонсором проекта.

Сайт Awilum

Поделиться

8 2013-01-08 20:52:59

Re: monstra/Core.php что это за безобразие?

Во всяком случае, зачем столько говнокода, даже для старой версии, которая предлагается для закачки на главной станице?

Поделиться

9

Re: monstra/Core.php что это за безобразие?

Аривидерчи Тролль с forum.searchengines.ru

Follow me: Twitter | GitHub | Coderwall

Стань спонсором проекта.

Сайт Awilum

Поделиться