Powered by CodeIgniter
  Лучшие (259)Сообщества (407)Блоги (186)Новые (327) 
Привет всем!
Хочу поинтересоваться кто-как оптимизировал первый когир для существующих проектов.

Например, вынести картинки на другой поддомен оказалось намного проще, чем я думал вначале.
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 всей базы — всё руки не доходят.

Меня больше интересует оптимизация скорости отработки и уменьшение занимаемой оперативки.
07:02 ← 24 января 2012 Отправить в Твиттер ramirRamir  RSS comments 3
Буду описывать в режиме онлайн установку движка на хостинг (наметки будущих исправлений)
Скачал дистрибутив 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);
20:24 ← 21 января 2012 Отправить в Твиттер icedragonIceDragon  RSS comments 1
Добрый день!

Может у кого была такая проблема уже, надеюсь решается не очень сложно.

Суть в следующем — хостер переехал на другой сервер, перенес сайт — и перестали открываться любые внутренние страницы. Перебрасывает на главную. Как это выглядит можно посмотреть на 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
16:51 ← 19 октября 2011 Отправить в Твиттер d4rkoliand4rkolian  RSS comments 0
1. Документация
"Документация написана наполовину.© Дмитрий Беляев

Пардоньте сильно. IMHO: Она вообще не написана. То, что написано — _не_документация_ к фреймворку. Это сто пятая рассказка об как оно вообще. Брошеная кость.

Что ожидается (обычно) от документации к фреймоворку?
— Какие модули (классы/функции) имеются в наличии (регулярно обновляемый список, по мере добавления новых модулей)
— Какие аттрибуты, методы имеются в наличии в _каждом_ из модулей (детально, по каждому представленному модулю. с примерами _возможного_ использования. _без_необходимости методично засовывать физически нос в каждый из модулей и самостоятельно разбираться <как оно там..>.
Потому что, главное назначение фреймоворка (любого) — _быстрое_написание сайта.

Ничего подобного в документации представленной на 24 страницах нет.

2. Установка.

Для фреймоворка необходимо создать/установить уникальную базу данных. Именно его, родную, ту, которая идет с ним в пакете. Ни с какой другой, ранее существущей и, не дай бог, заполненой данными, он не будет работать. Даже, если ваша существующая имеет одноименные таблицы(поля в таблицах).
Почему?
Ответ:
в представленном… хм… фреймворке имеет место быть уникальное шифрование юзерпаролей, по схеме: md5(md5($password).unique_key). Причем ключ поставляется в пакете. И в документации нет ни слова о такой важной, как мне, наивно, видится, детали. Равно, как нет никакого механизма для изменения этого «уникального» ключа при инсталляции (соотвественно, уникальным этот ключ является для фреймворка, а не для вашего сайта.) Если вы планируете шифровать пароли каким-либо другим методом, вам придется кастомизировать шестерню User (method hashPassword), под свои нужды. Заранее оговорю — ни в коем случае, не правьте ту, которая идет в пакете. Механизм правки существущих шестерен (о котором тоже, к слову, нет ни слова в документации должен быть таковым. Скопируйте шестерню User (весь директорий) из дира engine в дир gears. И вот в копии уже вносите поправки.)
Далее, допустим вы изменили уникальный ключ (файл settings.php) вручную… В результате, логнуться под существующим админ/паролем в дефлтовом демо-сайте, можете и не мечтать. валидатор не пропустит. Вам придется ручками же, изменять хэш пароля в бд. Чтобы соотвествовало… По-большому счету, я вообще не понимаю, почему дефолтовым сайтом — для первоначального логина-настроек представлен блог. Как-то оно… очень не профессионально.

to be continued…
22:28 ← 17 октября 2011 Отправить в Твиттер tochka6tochka6  RSS comments 13
Хочу презентовать альтернативную тему для движка Cogear2.

15:28 ← 18 августа 2011 Отправить в Твиттер inetloverinetlover  RSS comments 8
демо-сайте new.cogear.ru
Зачем я это делаю? Ответ: это нигде, на сегодняшний момент, не описано (или где-то описано, но я не нашла)
Каждый момент буду прописывать в отдельном посте. Тогда, мне кажется, нам будет легче прийти к консенсусу по каждому моменту.

зы.
Если у присуствующих есть свои собственные вводные, ровно одна просьба — пожалуйста сохраняйте дерево. заранее море спасиб.

продолжение следует…
20:14 ← 16 августа 2011 Отправить в Твиттер tochka6tochka6  RSS comments 13
Доброго времени суток!
Считаю, что общение и кооперация в команде являются не менее важной составляющей, чем сама работа. В конечном итоге, продукт всегда является результатом работы команды. В последние недели наше общение наконец-то приобрело должны вид. Практически весь день с утра и до ночи, мы ведем дискуссию о проекте на dev.cogear.ru и в чате Skype. Благодаря этому мы становимся все более объективными, потому как объективность — это мнение каждого, поделенное на мнение всех, то есть общества.
Итак, было принято решение мы решили смотреть на вещи более реально.
Что у нас есть сейчас:
  • Мощный и простой PHP-фреймворк, который стремится превратиться в универсальный гаечный ключ движок для создания сайтов,
  • Небольшая, но сплоченная команда единомышленников.
Вопреки моему альтруистическому желанию выпустить именно CMS к 1-ому сентябрю, мы пришли к выводу, что пласт работы, который предстоит проделать для достижения искомого результата слишком велик для такого короткого срока. Как-то изменять своим идеалам — не наш выбор. На меньшее мы не согласны.
Поэтому мы решили поделиться с широкой общественностью промежуточным результатом своих трудов и 1-ого числа выпустить на международную арену PHP-фреймворк cogear.

В любом случае, разрабатывая cogear², мы будем совершенствовать фреймворк, но выпустив его в качестве standalone-продукта, мы привлечем новых последователей и участников сообщества. И чем больше нас будет, тем быстрее мы завершим разработку cogear².

Информация для запоминания:
cogear — PHP-фреймворк (запуск официального международного сайта 1 сентября 2011 года)
cogear¹ — первый движок (работает на CodeIgniter)
cogear² — второй движок (разрабатывается на cogear)
16:16 ← 15 августа 2011 Отправить в Твиттер adminadmin  RSS comments 6
сюда туда