| Профиль | Блог (2) | Комментарии (45) | Закладки (1) | Продукты |
1. Документация
"Документация написана наполовину.© Дмитрий Беляев
Пардоньте сильно. IMHO: Она вообще не написана. То, что написано — _не_документация_ к фреймворку. Это сто пятая рассказка об как оно вообще. Брошеная кость.
Что ожидается (обычно) от документации к фреймоворку?
— Какие модули (классы/функции) имеются в наличии (регулярно обновляемый список, по мере добавления новых модулей)
— Какие аттрибуты, методы имеются в наличии в _каждом_ из модулей (детально, по каждому представленному модулю. с примерами _возможного_ использования. _без_необходимости методично засовывать физически нос в каждый из модулей и самостоятельно разбираться <как оно там..>.
Потому что, главное назначение фреймоворка (любого) — _быстрое_написание сайта.
Ничего подобного в документации представленной на 24 страницах нет.
2. Установка.
Для фреймоворка необходимо создать/установить уникальную базу данных. Именно его, родную, ту, которая идет с ним в пакете. Ни с какой другой, ранее существущей и, не дай бог, заполненой данными, он не будет работать. Даже, если ваша существующая имеет одноименные таблицы(поля в таблицах).
Почему?
Ответ:
в представленном… хм… фреймворке имеет место быть уникальное шифрование юзерпаролей, по схеме: md5(md5($password).unique_key). Причем ключ поставляется в пакете. И в документации нет ни слова о такой важной, как мне, наивно, видится, детали. Равно, как нет никакого механизма для изменения этого «уникального» ключа при инсталляции (соотвественно, уникальным этот ключ является для фреймворка, а не для вашего сайта.) Если вы планируете шифровать пароли каким-либо другим методом, вам придется кастомизировать шестерню User (method hashPassword), под свои нужды. Заранее оговорю — ни в коем случае, не правьте ту, которая идет в пакете. Механизм правки существущих шестерен (о котором тоже, к слову, нет ни слова в документации должен быть таковым. Скопируйте шестерню User (весь директорий) из дира engine в дир gears. И вот в копии уже вносите поправки.)
Далее, допустим вы изменили уникальный ключ (файл settings.php) вручную… В результате, логнуться под существующим админ/паролем в дефлтовом демо-сайте, можете и не мечтать. валидатор не пропустит. Вам придется ручками же, изменять хэш пароля в бд. Чтобы соотвествовало… По-большому счету, я вообще не понимаю, почему дефолтовым сайтом — для первоначального логина-настроек представлен блог. Как-то оно… очень не профессионально.
to be continued…
"Документация написана наполовину.© Дмитрий Беляев
Пардоньте сильно. IMHO: Она вообще не написана. То, что написано — _не_документация_ к фреймворку. Это сто пятая рассказка об как оно вообще. Брошеная кость.
Что ожидается (обычно) от документации к фреймоворку?
— Какие модули (классы/функции) имеются в наличии (регулярно обновляемый список, по мере добавления новых модулей)
— Какие аттрибуты, методы имеются в наличии в _каждом_ из модулей (детально, по каждому представленному модулю. с примерами _возможного_ использования. _без_необходимости методично засовывать физически нос в каждый из модулей и самостоятельно разбираться <как оно там..>.
Потому что, главное назначение фреймоворка (любого) — _быстрое_написание сайта.
Ничего подобного в документации представленной на 24 страницах нет.
2. Установка.
Для фреймоворка необходимо создать/установить уникальную базу данных. Именно его, родную, ту, которая идет с ним в пакете. Ни с какой другой, ранее существущей и, не дай бог, заполненой данными, он не будет работать. Даже, если ваша существующая имеет одноименные таблицы(поля в таблицах).
Почему?
Ответ:
в представленном… хм… фреймворке имеет место быть уникальное шифрование юзерпаролей, по схеме: md5(md5($password).unique_key). Причем ключ поставляется в пакете. И в документации нет ни слова о такой важной, как мне, наивно, видится, детали. Равно, как нет никакого механизма для изменения этого «уникального» ключа при инсталляции (соотвественно, уникальным этот ключ является для фреймворка, а не для вашего сайта.) Если вы планируете шифровать пароли каким-либо другим методом, вам придется кастомизировать шестерню User (method hashPassword), под свои нужды. Заранее оговорю — ни в коем случае, не правьте ту, которая идет в пакете. Механизм правки существущих шестерен (о котором тоже, к слову, нет ни слова в документации должен быть таковым. Скопируйте шестерню User (весь директорий) из дира engine в дир gears. И вот в копии уже вносите поправки.)
Далее, допустим вы изменили уникальный ключ (файл settings.php) вручную… В результате, логнуться под существующим админ/паролем в дефлтовом демо-сайте, можете и не мечтать. валидатор не пропустит. Вам придется ручками же, изменять хэш пароля в бд. Чтобы соотвествовало… По-большому счету, я вообще не понимаю, почему дефолтовым сайтом — для первоначального логина-настроек представлен блог. Как-то оно… очень не профессионально.
to be continued…


Список модулей последним делом описывается. Примеры для всех модулей приводить — уйдет еще много времени. Лучше пару уроков сделать.
2. Любой движок, если работает с БД, то предлагает свою таблицу. Поскольку мы начали реализовывать расширенный функционал — управления пользователями, постами и так далее, то пришлось создать и БД. В остальном согласен. Можно часть шестерней перенести из ядра просто в базу.
Спасибо.
Вообще, было бы здорово документом или постом все пожелания выразить. Потому что у меня одно видение документации, у тебя — другое, а еще кого-нибудь — третье.
/** * Grab table for fields * * @param string $table * @return array */ public function getFields($table = ''){ $table OR $table = reset($this->_query['from']); if (!$this->fields[$table] = $this->system_cache->read('database/' . $table,TRUE)) { if($fields = $this->getFieldsQuery($table)){ $this->fields[$table] = array(); foreach ($fields as $field) { $this->fields[$table][$field->Field] = $field->Type; } $this->system_cache->write('database/' . $table, $this->fields[$table],array('db.fields')); } } return $this->fields[$table]; }Суть такая — кеширует поля таблиц. Чтобы каждый раз не делать этот емкий запрос. А поля знать нужно для работы с ними через ORM.
Странно, а у меня всего 16 страниц, может я не ту качаю?
ps
Так же жду CMS Cogear2, а не фреймворк) Но, как понимаю, не в этом году уже точно
www.spoon-library.com/ — фреймворк
www.fork-cms.com/ — сделанная на нем CMS
На данном этапе код cogear 2 заточен под CMS но никак не под Фреймворк, он не даёт той свободы, т.е половина классов=модулей уже заточены под движок, они не дают свободу действий, в пример той же таблицы пользователей и самого модуля
за линки спасибо.
Core --> Filesystem.php --> public static function fromBytes
в свитче необходимо изменить $byte на $bytes.
ибо баг(и)