Вопрос к любителям yii

Не относящиеся к фреймворку и программированию вопросы
Ответить
bart
Сообщения: 77
Зарегистрирован: 2015.01.23, 11:28

Вопрос к любителям yii

Сообщение bart »

C yii я начал знакомство недавно, до этого был ci или вообще чистый пхп. Вот хотел бы спросить 'бывалых иишников' - в чем вообще прикол таких фреймвороков?! Yii конечно многофункционален и может его стоит использовать на каких то реально хайлоудах НО в наше время требуется писать на yii даже какие-нибудь простенькие инэт-магазы с товаром в лучшем случае на пару тыщ позиций. Я смотрю на yii сейчас именно с позиции использования его в таких простых проектах. Теперь просто пару имхо:
1.Блин форму сверстать- нужно вызывать какие то методы, массивы параметров и т.п. На том же бутстрапе все можно сделать гораздо быстрее и проще и не менее функционально(с проверкой вводимых данных на стороне клиента и т.п. за счет новых тегов html 5, или на крайняк написать простенький запрос к бд).
2. Запросы к бд - есть старый хороший PDO или Mysqli которые могут делать ВСЁ! В AR-составление связей и танцы с бубнами, потом инициализация критериев и т.п.-в итоге запрос который на sql был бы в одну строчку, превращается в 3.
3.Про семантику этого фреймворка я вообще молчу......
Вообщем перечислять можно долго, но суть в том что блин нахрена столько различных классов оберток, когда есть хорошие родные функции php..... Не претендую на истину, просто высказал мнение новичка, так сказать.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Вопрос к любителям yii

Сообщение samdark »

Всегда стоит выбирать для решения задачи то, чем она решится быстрее, дешевле и лучше. С прицелом, конечно, на будущее. Yii не для всего лучшее решение.

1. Ради валидации и заполнения полей.
2. Используйте query builder.
3. Вот про это интересно конкретных примеров заполучить. Может что улучшить удастся.

Обёртки для того, чтобы:

1. Дать больше готового, чем даёт голый PHP.
2. Сгладить баги и особенности PHP.
Аватара пользователя
zabachok
Сообщения: 522
Зарегистрирован: 2013.12.16, 14:38

Re: Вопрос к любителям yii

Сообщение zabachok »

Можно строить дом руками, кладя кирпич на кирпич, долго и кропотливо. Но можно изготавливать бетонную панель и из нее собирать дом, но для этого нужен завод.
Каким бы простым запрос у вас не был, все равно придется писать функции, которые будут проверять и фильтровать данные. Все равно нужен роутинг. Всеравно придется разделять код на логику и представление(я уж молчу о моделях).
Каждый программист пишет функции и классы, которые помогают ему быстрее, эффективнее и проще делать работу. Даже если вы занимаетесь только сайтами-одностраничниками, где только текст с контактами, то всеравно начнете делать заготовки(какой нибудь сброс ксс например).
Так вот, зачем нужен Yii, это набор инструментов, продуманный, протестированный, созданный умными людьми. Если я скармливаю в AR данные из поста, то я уверен, что ничего лишнего не пролезет. И мне не нужно ничего изобретать, я просто делаю свою работу.
Ну и для меня это отличный способ научится новому. Многим отличным решениям, а главное аккуратности я научился у Yii.
2b||!2b Just read the instructions
bart
Сообщения: 77
Зарегистрирован: 2015.01.23, 11:28

Re: Вопрос к любителям yii

Сообщение bart »

Можно строить дом руками, кладя кирпич на кирпич, долго и кропотливо. Но можно изготавливать бетонную панель и из нее собирать дом, но для этого нужен завод.
Ну это я понимаю. Я не говорю, что фреймы не нужны. Может такое просто впечатление первое от yii, на CI конечно все проще шло, но и он сам гораздо проще. Yii конечно, я считаю, реально сложная штука и сколько с ней времени разбираться даже не представляю. Хотя если верить отзывом то те же zend или symphony еще запутаннее yii (даже не представляю что там). А если вернуться к yii теме, то сегодня у меня ушло полдня на то, чтобы с помощью виджета Cgridview сделать таблицу с сортировкой и фильтрацией+редактирование/удаление(чудом как то заработало). Если б я это делал так как обычно такие вещи делал, то потратил бы может часа пол, максимум час. И кода кстати получилось немало.
Про роутинг, пагинации и пр. плюшки- я согласен. Во фрейме это проще реализуется, но использовать yii только из-за роутинга, как то хз.......я к тому. что если взялся то надо полноценно юзать(хотя конечно секаса с формированием ссылок, к примеру я вообще не понимаю).
Роутинг, кстати, я и без фрейма делал, с фабрикой и перегрузкой и было норм)
Вообщем буду пытаться дальше грызть гранит yii...... :)
bart
Сообщения: 77
Зарегистрирован: 2015.01.23, 11:28

Re: Вопрос к любителям yii

Сообщение bart »

1. Ради валидации и заполнения полей.
2. Используйте query builder.
3. Вот про это интересно конкретных примеров заполучить. Может что улучшить удастся.
1.Ну валидацию я через html делаю, хотя очень приятно удивил unique при валидации. При написании регистрации очень облегчает жизнь.
2.Ну AR юзаю для простых запросов, билдер для составных.
3.Ну тут я имел ввиду просто первое впечатление от структуры написания yii,стиль написания скриптов. У меня опыта мало, и я как то все сравниваю с первой 'любовью -CI' :)
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Вопрос к любителям yii

Сообщение samdark »

1. html — это клиентская валидация. Данные на сервер можно послать и без браузера, то есть валидацию необходимо делать на сервере в любом случае.
2. Всё верно.
Аватара пользователя
jh5
Сообщения: 4
Зарегистрирован: 2015.03.29, 18:58
Контактная информация:

Re: Вопрос к любителям yii

Сообщение jh5 »

Есть и микрофреймворки и "голый php". Но...
Стоит задача от клиента (для примера)
1. Создать типовой интернет-магазин за 2 дня +) решение - готовая cms.
2. Создать не типовой интернет-магазин за 1 неделю решение php framework.
Создавать свои велосипеды очень интересно и это хорошо обучения, но если вопрос касается времени и денег, то лучше использовать готовые продукты.
Аватара пользователя
zabachok
Сообщения: 522
Зарегистрирован: 2013.12.16, 14:38

Re: Вопрос к любителям yii

Сообщение zabachok »

bart писал(а):А если вернуться к yii теме, то сегодня у меня ушло полдня на то, чтобы с помощью виджета Cgridview сделать таблицу с сортировкой и фильтрацией+редактирование/удаление(чудом как то заработало).
Еще раз сделаете, почитаете АПИ, привыкните и будете эту работу делать за 5 минут.
(хотя конечно секаса с формированием ссылок, к примеру я вообще не понимаю)
Великая вещь, спасает нервы и время. Настоящая история из жизни. Приходится поддерживать сайт написанный на какой-то самодельной дряни. Сеошники захотели изменить адресацию с "/page/123" на алиасы, причем вложенные. Мне пришлось потратить больше двух недель, что бы это работало корректно и заменить везде ссылки. Есть другой проект который я сделал на Yii, захотели заменить адрес личного кабинета пользователя с "/ucp" на "/profile" и все вложенные в него страницы тоже должны быть "/profile/*". И что вы думаете, я сделал это в течении 10 секунд. Конфиг был открыт, я поправил параметры роутинга и вуаля. Все потому что я использовал встроенные механизмы фреймворка для генерации ссылок. Теперь делаю только так! Представляете сколько бы мне пришлось опять потратить времени что бы заменить все ссылки во всем проекте.

Мысленно пью за всю команду разработчиков Yii. Отдельное спасибо Александру Макарову, который поддерживает русскоязычное сообщество. Спасибо вам!
2b||!2b Just read the instructions
Аватара пользователя
fdr
Сообщения: 35
Зарегистрирован: 2015.01.27, 15:52
Откуда: Yekaterinburg

Re: Вопрос к любителям yii

Сообщение fdr »

У yii всё же есть небольшие недочёты:

Расширенный json.

Вызван необходимостью создавать клиентский код на сервере, что обуславливает ряд проблем с кодом при работе только с клиентом, например, некоторые расширения без вмешательства в серверный код сложно реализовать.

В качестве примера можно привести валидаторы форм. Представим, что на клиенте у нас вместо jQuery используется какой-нибудь angular. В этом случае переписать клиент недостаточно.

Вместо готового jQuery кода для валидации лучше отдавать только данные с последующей обработкой на клиенте.


renderAjax

Сомнительный метод. Уже писал, что из-за встраивания в DOM тегов <script> происходит синхронная блокирующая загрузка.
Её не происходит, если скрипты уже были загружены (кэш браузера). Т.о. один из методов борьбы с этим явлением - это просто заранее подключить все необходимые файлы, но вопрос только в том, зачем тогда нужен renderAjax? :)

Есть и второй способ. Это парсить ответ сервера и вставлять скрипты в DOM вручную.

Код: Выделить всё

var scripts = [/** Ссылки на нужные скрипты */];

for (var i = 0; i < scripts.length; i++) {
    var script = document.createElement('script');
    script.src = scripts[i];
    document.body.appendChild(script);
}
Проблема лишь в том, что нужно парсить. В противном случае нужно снова вмешиваться в серверный код.

P.S. Как дела с этим у других php фреймворков я даже не знаю. :)
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Вопрос к любителям yii

Сообщение samdark »

Никак. Другие фреймворки даже не пытаются.
Аватара пользователя
fdr
Сообщения: 35
Зарегистрирован: 2015.01.27, 15:52
Откуда: Yekaterinburg

Re: Вопрос к любителям yii

Сообщение fdr »

Sam Dark писал(а):Никак. Другие фреймворки даже не пытаются.
И они, возможно, правы. Фреймворк всё же серверный.

В случае с валидаторами можно добавить пару тегов data-* и пожелать успеха с валидацией на клиенте.
А вот с динамической загрузкой этими 5ю строчками выше на клиенте явно не обойтись. И дело даже не в парсинге ответа, совсем забыл, что нужно сохранить порядок, а с этим будет сложнее (script.async = false - не каждый браузер ещё понимает). Хочешь асинхронную загрузку? Так и возьми какой-нибудь requirejs.
Ответить