| Лучшие (259) | Сообщества (407) | Блоги (186) | Новые (327) |
Привет всем!
Хочу поинтересоваться кто-как оптимизировал первый когир для существующих проектов.
Например, вынести картинки на другой поддомен оказалось намного проще, чем я думал вначале.
1) добавим в global.info URL к папке с файлами
3) пример настройки Nginx
Кроме иконок еще вынес добавляемые через Elfinder картинки, но нужно делать update всей базы — всё руки не доходят.
Меня больше интересует оптимизация скорости отработки и уменьшение занимаемой оперативки.
Хочу поинтересоваться кто-как оптимизировал первый когир для существующих проектов.
Например, вынести картинки на другой поддомен оказалось намного проще, чем я думал вначале.
1) добавим в global.info URL к папке с файлами
uploads_url = http://i.im.qq
2) во всех шестеренках, где выводятся картинки добавим uploads_url, например, Шестеренка «Иконка публикации», в файле _hooks.php function node_icon_node_show_($Node,$node,$type,$return){
$CI =& get_instance();
if(!$uploads_url=$CI->gears->global->uploads_url) $uploads_url='';
if(!empty($node->icon)){
$node->body = $CI->builder->span($CI->builder->img($uploads_url.$node->icon),'node_icon').$node->body;
}
}
3) пример настройки Nginx
#########################################################################################
server {
listen 127.0.0.1:80;
server_name i.im.qq;
#Static files location
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar)$ {
root /home/ramir/~sites/im.qq/www;
access_log off;
expires 1d;
}
}
Кроме иконок еще вынес добавляемые через Elfinder картинки, но нужно делать update всей базы — всё руки не доходят.
Меня больше интересует оптимизация скорости отработки и уменьшение занимаемой оперативки.
Буду описывать в режиме онлайн установку движка на хостинг (наметки будущих исправлений)
Скачал дистрибутив dev с github.com на 21 01 2011
распаковал на хостинг реального хостера (PHP Version 5.2.17)
Установил БД, переименовал cogear.new в поддомен сайта (по которому и тестирую), прописал настройки
При запуске получил ошибку
Как выяснилось — в файле index.php на 94 строке $host оказался NULL
при этом в $_SERVER['HTTP_HOST'] лежал адрес сайта
Нашел что это баг php при фильтрации (т.е. нужна другая версия php)
https://bugs.php.net/bug.php?id=49184
на версии php Version 5.3.6 работает нормально, т.е. в отношении реального хостинга надо придумать что то другое.
Пока что прописал
Тоже самое с
Дальше была проблема с интернационализацией.
В файле /sites/cogear.new/config.php по умолчанию установлено следующее
Считывается это так (/engine/I18n/Gear.php )
Как результат — у нас не установлена опция 'path', и он искал файл языка в '/ru.php'
Прописал в конфиг — 'path' => SITE.DS.'lang',
варианта еще 2.
1й — определить опцию по умолчанию 'path' => SITE.DS.'lang',
или 2й — проверять при использовании и если нет — то использовать 'path' => SITE.DS.'lang'
Сайт загрузился без видимых ошибок.
Залогинился.
При попытке изменить настройки текущего пользователя — не сохранил настройки.
Оказалось что в шестеренке USER при сохранении редактированных данных нужен
Скачал дистрибутив dev с github.com на 21 01 2011
распаковал на хостинг реального хостера (PHP Version 5.2.17)
Установил БД, переименовал cogear.new в поддомен сайта (по которому и тестирую), прописал настройки
При запуске получил ошибку
Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 173
Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 173
Notice: Indirect modification of overloaded property Cogear::$theme has no effect in /engine/Theme/Gear.php on line 173
Strict Standards: Creating default object from empty value in /engine/Theme/Gear.php on line 173
Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 174
Notice: Trying to get property of non-object in /engine/Theme/Gear.php on line 174
Fatal error: Call to a member function append() on a non-object in /engine/Theme/Gear.php on line 174
Как выяснилось — в файле index.php на 94 строке $host оказался NULL
$host = $cogear->request->get('HTTP_HOST');
при этом в $_SERVER['HTTP_HOST'] лежал адрес сайта
Нашел что это баг php при фильтрации (т.е. нужна другая версия php)
/engine/Core/Request.php на 64 строке
https://bugs.php.net/bug.php?id=49184
на версии php Version 5.3.6 работает нормально, т.е. в отношении реального хостинга надо придумать что то другое.
Пока что прописал
$host = $_SERVER['HTTP_HOST'];
Тоже самое с
$port = $cogear->request->get('SERVER_PORT').Дальше была проблема с интернационализацией.
В файле /sites/cogear.new/config.php по умолчанию установлено следующее
'i18n' =>
array (
'lang' => 'ru',
),
Считывается это так (/engine/I18n/Gear.php )
$this->adapter = new $adapter(config('i18n',array(
'lang' => 'en',
'path' => SITE.DS.'lang',
)));
Как результат — у нас не установлена опция 'path', и он искал файл языка в '/ru.php'
Прописал в конфиг — 'path' => SITE.DS.'lang',
варианта еще 2.
1й — определить опцию по умолчанию 'path' => SITE.DS.'lang',
или 2й — проверять при использовании и если нет — то использовать 'path' => SITE.DS.'lang'
Сайт загрузился без видимых ошибок.
Залогинился.
При попытке изменить настройки текущего пользователя — не сохранил настройки.
Оказалось что в шестеренке USER при сохранении редактированных данных нужен
$user->object->adopt($result);
а не $user->adopt($result);
Добрый день!
Может у кого была такая проблема уже, надеюсь решается не очень сложно.
Суть в следующем — хостер переехал на другой сервер, перенес сайт — и перестали открываться любые внутренние страницы. Перебрасывает на главную. Как это выглядит можно посмотреть на mymarussia.ru — покликать по любым ссылкам.
Грешил на .htaccess, но вроде он на месте. Вот его содержимое на всякий случай:
Может у кого была такая проблема уже, надеюсь решается не очень сложно.
Суть в следующем — хостер переехал на другой сервер, перенес сайт — и перестали открываться любые внутренние страницы. Перебрасывает на главную. Как это выглядит можно посмотреть на mymarussia.ru — покликать по любым ссылкам.
Грешил на .htaccess, но вроде он на месте. Вот его содержимое на всякий случай:
AddDefaultCharset utf-8
<Files ~ ".*\.(info|tpl)$">
Order allow,deny
Deny from all
</Files>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$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…
демо-сайте new.cogear.ru
Зачем я это делаю? Ответ: это нигде, на сегодняшний момент, не описано (или где-то описано, но я не нашла)
Каждый момент буду прописывать в отдельном посте. Тогда, мне кажется, нам будет легче прийти к консенсусу по каждому моменту.
зы.
Если у присуствующих есть свои собственные вводные, ровно одна просьба — пожалуйста сохраняйте дерево. заранее море спасиб.
продолжение следует…
Зачем я это делаю? Ответ: это нигде, на сегодняшний момент, не описано (или где-то описано, но я не нашла)
Каждый момент буду прописывать в отдельном посте. Тогда, мне кажется, нам будет легче прийти к консенсусу по каждому моменту.
зы.
Если у присуствующих есть свои собственные вводные, ровно одна просьба — пожалуйста сохраняйте дерево. заранее море спасиб.
продолжение следует…
Доброго времени суток!Считаю, что общение и кооперация в команде являются не менее важной составляющей, чем сама работа. В конечном итоге, продукт всегда является результатом работы команды. В последние недели наше общение наконец-то приобрело должны вид. Практически весь день с утра и до ночи, мы ведем дискуссию о проекте на dev.cogear.ru и в чате Skype. Благодаря этому мы становимся все более объективными, потому как объективность — это мнение каждого, поделенное на мнение всех, то есть общества.
Итак,
Что у нас есть сейчас:
- Мощный и простой PHP-фреймворк, который стремится превратиться в универсальный
гаечный ключдвижок для создания сайтов, - Небольшая, но сплоченная команда единомышленников.
Поэтому мы решили поделиться с широкой общественностью промежуточным результатом своих трудов и 1-ого числа выпустить на международную арену PHP-фреймворк cogear.
В любом случае, разрабатывая cogear², мы будем совершенствовать фреймворк, но выпустив его в качестве standalone-продукта, мы привлечем новых последователей и участников сообщества. И чем больше нас будет, тем быстрее мы завершим разработку cogear².
Информация для запоминания:
cogear — PHP-фреймворк (запуск официального международного сайта 1 сентября 2011 года)
cogear¹ — первый движок (работает на CodeIgniter)
cogear² — второй движок (разрабатывается на cogear)


sofcom → Новости / Релиз фреймворка задерживается 134
Ramir → блог aesteral / Сжатие JavaScript и CSS 2
IceDragon → блог IceDragon / Тестирование cogear2 на реальном хостинге 1
AndreySuperstar → Новости / С Новым 2012 годом! 38
tochka6 → блог tochka6 / Минусы фреймворка Cogear2 (хм.. будущего) 13
Viktorminator → Github / Первые шаги работы в Git 7