CodeIgniter и PHP как FastCGI
Вот здесь я уже писал, об особенностях работы PHP в режиме FastCGI. Недавно обнаружил еще один глюк, который поначалу принял на счет этой «связки». Как оказалось проблема крылась именно в CodeIgniter.
Суть проблемы. У меня на сайте пагинация страниц. Поскольку главная страница имеет тип «home», то ссылки на страницы формируются в виде «сайт/home/next/2». И вот эта штука напрочь отказывалась работать - постоянно выходило сообщение, что страница не найдена (404).
Обнаружилось, что неверно работает $this->uri->segment_array() - он упорно исключал из первого сегмента URI «home». Перепробовав всевозможные варианты, полез в URI.php и выяснилась интересная деталь.
В режиме, когда $config['uri_protocol'] = "REQUEST_URI" происходит парсинг $_SERVER['REQUEST_URI'], что вполне логично. Но вот в конце этого парсинга (функция parserequest_uri) получает реальный путь на сервере и сравнивает с полученным REQUEST_URI и берет только ту часть, которая несовпадает. Так вот, на сервере путь начинается с «home» и первый сегмент тоже начинается с «home». Вот функция и удаляет её. :)
Я не стал сильно разбираться в смысле этих манипуляций, просто закоментировал строки:
# $parsed_uri = implode("/", array_slice($parsed_uri, $i)); $parsed_uri = implode("/", $parsed_uri);
После этого все заработало.
Привет,свою разработку будешь выкладывать в свободный доступ или как Клиент для WordPress будет платный?ФКлиент кстати я у тебя купил,но не пользуюсь,на это есть свои причины.Хотелось бы услышать ответ,кстати удачи в разработке,дело не благодарное-она тебе пригодится.Время ссесии увеличь,люди не роботы-быстро не пишут.
Система будет открытой. Сейчас не выкладываю по причине того, что еще сам нахожу некоторые неточности, а также переделываю некоторые вещи. Например визуальный редактор только что доделал. Пока все эти мелочи не подчищу, смысла выкладывать просто не вижу.
MaxCMS интересна тем, кто пишет на CI. Когда фреймворку не хватает CMS над ним...
Вобщем, а предположительно, когда плюс-минус будет выкладываться система?
В конце-концов, те, кто сами пишут на фреймворке, вполне могут допилить недостающие им части.
P.S. Оно мне только что сказало "ошибка сессии, обновите страницу". Мама, что это было?
У меня в todo еще 20 пунктов. В день уходит на 1-2, больше не получается. Но я уже принял решение, что до 1 июня выложу ту версию которая будет на на тот момент. В принципе сама система работает, но некоторые мелочи нужно всё-таки доделать.
Расчитывать на то, что кто-то придет и будет доделывать, я не хочу. Сам не люблю в чужом коде ковыряться, думаю, что у других такое же мнение.
ps Сессия просто истекла. Время обновения сессии стоит 15 минут. По идее должно хватить для написания комментария.
1 июня - ура!
Дело вообще-то в том, что я уже более-менее разобрался с Codeigniter и в случае чего могу писать под него плагины, но очень мало разобрался с drupal и wordpress (их кодом) - в случае чего мне или обходиться стандартными (модифицировать оные только за счёт общего владения php), или тратить время на разбирательство с API drupal\wordpress (что сделать вобщем-то планирую).
Учитывая, что на друпале\вордпрессе с уже существующими плагинами можно решить очень большое количество задач, к тому же быстрее, чем решать их на голом фреймворке, а также учитывая тяжеловесность вордпресса и друпала и нерешаемость ими каких-то нестандартных задач - я очень рад появлению cms на codeigniter. Думаю, небольшие проекты на MaxCMS делать будет удобно. Каждой задаче свой инструмент.
Я думаю, что у меня плагины немного проще делать. Во-первых за счет более четких тербований, именований, а во вторых - там практически чистый PHP, а следовательно ограничений системы будет минимум. По сути у меня плагин - это просто подключаемый php-файл.
А я люблю ковыряться в чужом коде, если этот код мне нравится... считаю, что так можно почерпнуть много полезного. Я пока только изучаю CI, попутно и maxsite - хочу заюзать его для своего блога, но мне не хватает уверенности, что я смогу его потом под свои нужды дорабатывать... Как-то он, ИМХО, не так работает, как в документации на CI предполагется... И еще в URI.php какие-то символы типа нестандартные... не знаю, PHPeD ругается, предлагает сделать транслитерацию, а когда я жму "Cancel", то и вовсе валится... трик однако :)