Pull to refresh

Comments 19

Давно уже не было постов о Codeigniter
Есть небольшая опечатка:
Создадим два дочерних класса:
application/libraries/Connect/drivers/Connect_twitter.php
application/libraries/Connect/drivers/Connect_twitter.php
Второй файл должен называться Connect_facebook.php

На будущее — даешь примеры посложнее ;)
Спасибо, исправил.
Еще очень удачный пример встроенного драйвера кэширования.
Можно еще и его почитать.

ЗЫ. жаль кармы мало, так бы статейку написал в Блог CodeIgniter`a
Жив еще старичок, помнят! :)

В целом простая реализация и хороший пример для новичков.
А что с ним должно случиться-то?
Его могут забыть и прийти стагнация, тем более с такими вялыми релизами от Reactor группы.
после переезда на GitHub там уже давно совсем не вяло)) и Reactor уже слился вместе с Core, да и судя по чейнджлогу 14-го релиз 2.1.0… на оф.сайте тоже уже предлагают загрузить 2.1.0, но там еще не обновили документацию
Ну не знаю, лично я даже если прикинуть худший сценарий, что он начнет загибаться из-за быстроразвивающейся коханы или еще чего нибуть, могу спокойно продолжать его использовать в проектах ближайшие 2-3 года спокойно. К тому же если уходить с php то понятно дело что на рЭльсы. Но это отдельная тема для флейма)
Ну в целом-то просто прогресс и отставание фрэймворка не радует совсем. Посмотрите на Yii если не брать во внимание уродливое именование и конфиги массивом, то какая прелесть во всем остальном. А Symfony2 какой шикарный пласт работы сделали, прям получился такой enterprise framework на php и лучший пример как юзать нэймспэйс.
Да тех же Ниндзя, что параллельно ведут FuelPHP всё грамотно заморочив с простотой CI, но новыми возможностями PHP.

Ну а уходить куда-то, это от востребованности, я не ушел, пишу на CI до сих пор, но это не радует, скорее по инерции держу старые проекты, да и знаю его досконально как и что сделать. Так же понимаю, как он морально отстал и требует лишних движений.

Но уже все новые проекты пишу на Yii и таки ушел на Ruby on Rails :) потому как это приятно
Продолжим оффтоп)))
Лично мне YII не понравился, я попробовал им воспользоваться, 2 дня плевался, снес и за 3 сделал на CI. Вот как-то так получилось…

Про моральное отставание если честно я лично не заметил, хотя может потребности не было. Какбэ вроде все есть что нужно, остальное дописывается ручками…
С Yii по ряду вещей тоже плююсь (как именование классов с CController и т.п. ну и верблюжий синтаксис со времён MFC меня не прёт), но это что-то новенькое, свеженькое и даёт большой прирост к производительности моего труда :)

Ну чисто технически чего не хватает для удобства, это например:
— консоль для генерации контроллеров и т.п. вещей
— системы тестов не только для моделей
— хорошей системы автозагрузки
— модели ведут себя как singleton классы, а хочется как в RoR — $article = Article::find(); и потом итератором лениво подгружать foreach( $article->all as $a ){… }

по моральности, жить можно, но это по старому:
— не хватает namespace и на этой базе модульности, HMVC всё в глобальном ns
— из этого именованность надо контроллер News а модель News_model а я бы хотел News\Controller\News и News\Model\News например иметь в будущем.

Ну и так еще есть что не вспомнил.
Понятно, что часть вещей решается сторонними модулями, это конечно здорово, но почему бы хотя бы архитектурные вещи не изменить
Спасибо стало яснее, обычно пропускал этот раздел документации.
Тут один вопрос:
Допустим, два раза используем
$this->connect->twitter->get_friends()
$this->connect->twitter->get_twitts();
В данном случае создаётся экземпляр класса Connect_twitter и в дальнейшем всегда хранится и используется, или при каждом $this->connect->twitter запросе вызывается new Connect_twitter?
Если первое, то как создать новый независимый экземпляр, если второе, то как хранить переменные класса?
В CodeIgniter модели, контроллеры, библиотеки и т.д. реализуют паттерн Singleton, поэтому экземпляр будет один и создание второго противоречит архитектуре фреймворка.
Чтобы создать новый экземпляр, нужно загрузить библиотеку в другой объект, указав его имя в третьем параметре метода load (вторым параметром указывается массив параметров инициализации, а имя по умолчанию совпадает с именем класса)

$this->load->driver('connect');
$this->connect->twitter->get_twitts();

$this->load->driver('connect', '', 'connect2');
$this->connect2->twitter->get_twitts();


Создать отдельно экземпляр Connect_twitter не получится, потому как он описывает дополнительное поведения основного и сам по себе существовать не может.
Элегантненько, спасибо.
Стоп, если модель — синглтон, то могу ли я молучить два списка новостей одновременно, 1-й список 10 первых, 2-й список 10 последнийх, ведь при накладывании Order BY на второй список изменится первый, да и where-команды будут переходить.
Можно ведь добавить параметры в метод, которые будут менять ASK на DESC или задавать значения для LIMIT.
Sign up to leave a comment.

Articles