Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: подскажите по CI

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как бы так изловчиться
DlTA
Отправлено: 24 Февраля, 2012 - 13:58:50
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




читаю доку по CI при простой реализации вроде все просто (относительно)
возникает 2 вопроса
1) правило маршрузитации "класс/метод/[свойства/...]"
а если например в будущем захочу реализовать также и ajax-совую подгрузку контента, теоретически ссылка должна быть следующая /ajax/класс/метод/параметры
как избежать дублирования методов?
теоретически получается должно быть 2 основных класса:
1.1) обычный вывод 1.2) аяксовый
и уже каждый должен отдельно формировать контент к выводу,
обычный впихивать в шаблон и выводить, а аяксовый всовывать в json структуру. и тоже выводить
какая то нифига се иерархия получается, может я чет не так понял?

2) а разве есть (могут ли быть) еще какие то общие методы доступные из вне кроме вывода?
тоесть вывод статьи, или вывод отзыва
(Добавление)
третий вопрос возник: а как внутри одного контрола получить результат работы другого?
 
 Top
Viper
Отправлено: 24 Февраля, 2012 - 15:12:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DlTA а зачем дублировать? Можно просто добавить проверку что если контент ajax, то грузим тот же самый контроллер, с теми же методами, но в view мы выводим json, либо не подгружая view, сразу в контроллере плюем json.

Есть второй способ. Создать отдельный контроллер ajax и в нем создавать необходимые методы.

DlTA пишет:
третий вопрос возник: а как внутри одного контрола получить результат работы другого?
вы же метод вызываете. А не весь объект. Точно не помню но то ли в манах то ли на форуме где-то написанно как вызывать другой метод контроллера внутри другого.

(Отредактировано автором: 24 Февраля, 2012 - 15:15:09)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DlTA
Отправлено: 24 Февраля, 2012 - 15:30:17
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Viper пишет:
Есть второй способ. Создать отдельный контроллер ajax и в нем создавать необходимые методы.
это и есть дубрирование,
например: хочу аяксом грузить статью в content
для этого надо сначала пнуть контроллер Article чтоб тот из модели получил мне статью, применив нужный вывод сверстал мне ее, и уже это все аяксом залить в нужный блок content, и при этом у меня ведь не только блок content изменится но еще и title, меню (чет еще), и все эти изменения ведь должны прийти по аяксу,

да можно создать в классе article метод ajax но по сути это же будет полное дублирование кода метода view, что не очень хорошо.
 
 Top
Viper
Отправлено: 27 Февраля, 2012 - 10:35:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DlTA пишет:
это и есть дубрирование
дублирование чего? зачем вам одинаковые методы в обоих контроллерах?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DlTA
Отправлено: 27 Февраля, 2012 - 11:53:24
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Viper пишет:
дублирование чего? зачем вам одинаковые методы в обоих контроллерах?
у меня такое ощущение что путаю понятие контрола и модели, а также недостаток обстракции

например: перехожу в какой нить контрол "статья"
для генерации контента мне нужны: состояние каталога, список статей или текст статьи, генерация хлебных крошек;
прежде думал что все эти элементы должен генерить контрол, отсюда и выходило дублирование методов, но пораскинув мозгами понял, что каждый из элементов генерится отдельной моделью в которой при необходимости происходит и кеширование данных и правильно б было еще и вид подготовить,
но тогда опять непонятки с парадигмой МВЦ ибо на подготовку вида отправляет даныне модель а должен контрол, но если это будет делать контрол то тогда это уже будет дублирование кода, так как к примеру вид каталога надо генерить как из контрола статья так и из контрола отзывы, а так же для аяксовых методов.

что не так?
 
 Top
Viper
Отправлено: 27 Февраля, 2012 - 13:21:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DlTA дублирование методов модели нормальный случай. Модель возвращает результаты обработки данных. А уже контроллер передает их дальше в вьюшку. Собстно для "хлебных крошек" даже вьюшку не надо.

Все же стоит подумать о глобальных классах хелперах, дабы максимально свести обработку одинаковых данных к одному классу/методу.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DlTA
Отправлено: 27 Февраля, 2012 - 14:22:42
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Viper пишет:
Все же стоит подумать о глобальных классах хелперах

думал, но скорее не как о хелперах, а как о собственных библиотека для работы с моделью элементов, но в данном случае теряется смысл использования CI,
получается что я пишу проект с нуля все лишь испоьльзую некоторый функционал фреймверка
+ к тому же меня жутко напрягает то что он весь построен на __get, __set, ...
и IDE не может его нормально хавать из за этого только частично некий CodeLobster

я в чем то ошибся?
 
 Top
Viper
Отправлено: 27 Февраля, 2012 - 14:27:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Улыбка IDE не использую.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DlTA
Отправлено: 27 Февраля, 2012 - 14:37:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Viper пишет:
IDE не использую.
а остальные нюансы как реализуешь?
 
 Top
Viper
Отправлено: 28 Февраля, 2012 - 15:07:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DlTA пишет:
а остальные нюансы как реализуешь?
обычно выношу все повторяющееся в библиотеки и хелперы. + делаю проверку на тип документа(иногда на проверку есть ли переменная ajax) и если есть то использую не отдельный контроллер, а в стандартном делаю обработку.

т.е. правило будет /класс/метод/ajax/параметры


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DlTA
Отправлено: 06 Марта, 2012 - 14:48:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




[quote][/quote]

использую CI (2.x) с расширением HMVC (соответствующее) // может от чего то зависит)

так вот вопрос, как ci указать чтоб он вернул нужный мне заголовок?
а именно "charset=UTF-8"

в конфиге прописано $config['charset'] = 'UTF-8'; но заголовок возвращается стандартный "charset=windows-1251"

в запускаемом методе даже указал
$this->output->set_header('Content-Type:text/html; charset=UTF-8');
результат тот же
 
 Top
Tonik992
Отправлено: 06 Марта, 2012 - 17:00:59
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




DlTA пишет:
читаю доку по CI при простой реализации вроде все просто (относительно)
возникает 2 вопроса

вот видео - как один из вариантов использования ajax с CI..
http://net[dot]tutsplus[dot]com/tutorial[dot][dot][dot]atch-day-8-ajax/

вообще тут http://net[dot]tutsplus[dot]com/sessions[dot][dot][dot]er-from-scratch/ довольно хорошие скринкасты, я многие из них посмотрел, а сам AJAX использую так - тот же контроллер, тот же метод, просто в нем проверяю AJAX ли запрос был принят.. И уже в зависимости от ситуации - возвращаю либо json, либо цифру

по поводу UTF-8 попробуй напрямую в <head></head> прописать <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

(Отредактировано автором: 06 Марта, 2012 - 17:01:44)

 
 Top
DlTA
Отправлено: 06 Марта, 2012 - 17:36:45
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Tonik992 пишет:
<head></head> прописать <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
прописано
но так как хост возвращает заголовок win-1251 то и все браузеры по умолчанию думают что дока в win-1251

можно былоб принудительно де нить в файлах выдать заголовок, но хотелось бы по правилам разработчика
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB