Ага. Знаем. Попробуй теперь на этот «PHP прямо из коробки» поставить какой-нибудь из стандартных модулей, не находящихся в этой коробке, типа sqllite или domxml. Или обнови его с 5.2.6 до 5.2.9.
Очень сильно советую Вам посмотреть www.youtube.com/watch?v=4XpnKHJAok8. Создатель GIT доходчиво, в течение часа рассказывает для чего эта распределенность, почему она настолько важна и почему так плохо ее не ценить =)
На крупном проекте производительность рано или поздно все-равно упрется в крышку сервера и вот тогда Doctrine или Propel будут более выгодно выглядеть за счет своей гибкости и масштабируемости в сравнении с менее развитыми решениями. А в мелком проекте вообще не стоит заострять внимание на производительности. IMHO
Ну конечно упала =) Причем значительно… Примерно раза в 2 на моем предыдущем ноутбуке (C2Duo 1.8, 2GB RAM) относительно нативного ORM CI. Однако, гибкость получаемая при разработке с Doctrine лично для меня покрывает все издержки производительности. В конечном счете, мы просто выбираем между производительностью и гибкостью разрабатываемой системы…
3) И роуты можно немного изменить на случай, если вам захочется добавить еще парочку языков к вашему сайту (и такое случается). В таком случае, я исходил из принципа, что любой язык можно представить в двухбуквенном виде, однако у меня нет и не должно быть ни одного контроллера, в названии которого меньше 3 букв. Тогда роуты прописываются так:
Дописав это в конец config/routes.php (вместо $route['(ru|ua)'] = $route['default_controller']; $route['(ru|ua)/(.+)'] = "$2";) и положив приведенные мной выше файлы в helpers и libraries мы получим полную языковую поддержку, не влазя в контроллеры или вьюшки.
Статья интересна, но есть, на мой взгляд, несколько досадных упущений:
1) Для расширения языковых параметров CI, мне кажется лучше унаследовать и расширить именно языковую библиотеку (Language.php), а не контроллер. Пример файла application/library/My_Language.php (на PHP5, но можете переписать под ныне покойный PHP4):
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class XT_Language extends CI_Language
{
private $hasURLIdiom = FALSE;
private function setURLIdiom() {
$CI =& get_instance();
$idiom = $CI->uri->segment(1);
$CI->config->set_item('def_language', $CI->config->item('language'));
if (strlen($idiom) == 2 && is_dir(APPPATH . 'language/' . $idiom)) {
$CI->config->set_item('language', $idiom);
}
}
public function __construct() {
parent::CI_Language();
}
public function load($langfile = '', $idiom = '', $return = FALSE) {
if (! $this->hasURLIdiom) {
$this->setURLIdiom();
$this->hasURLIdiom = TRUE;
}
parent::load($langfile, $idiom, $return);
}
}
2) Также следует расширить URL helper, изменив функцию site_url для поддержки языкового сегмента в ссылке. В противном случае, зайдя по ссылке baraholka.rv.ua/ru/, все ссылки, созданные при помощи site_url будут все-равно вести на baraholka.rv.ua/. Пример файла application/helpers/My_url_helper.php:
Вы зря так… Гугл просто рассматривает нас (windows пользователей), как бета-тестеров. А вам (mac и linux юзерам) хочет предоставить качественный, выверенный, готовый продукт =)
Потому же, почему у Вас забрали рута из убунты =) Ваш Firefox же запущен с правами обычного пользователя, поэтому у него, видимо, нет доступа к системным директориям. Ставьте Firefox к себе в хоум и все должно начать обновляться... А вообще, сильно советовал бы Вам изучить корни Linux и ее системы разделения прав.
Дописав это в конец config/routes.php (вместо $route['(ru|ua)'] = $route['default_controller']; $route['(ru|ua)/(.+)'] = "$2";) и положив приведенные мной выше файлы в helpers и libraries мы получим полную языковую поддержку, не влазя в контроллеры или вьюшки.
1) Для расширения языковых параметров CI, мне кажется лучше унаследовать и расширить именно языковую библиотеку (Language.php), а не контроллер. Пример файла application/library/My_Language.php (на PHP5, но можете переписать под ныне покойный PHP4):
2) Также следует расширить URL helper, изменив функцию site_url для поддержки языкового сегмента в ссылке. В противном случае, зайдя по ссылке baraholka.rv.ua/ru/, все ссылки, созданные при помощи site_url будут все-равно вести на baraholka.rv.ua/. Пример файла application/helpers/My_url_helper.php: