Шаг 1: Что такое фреймворк?
Рубрика: Первые шаги
15 мая 2009
Я думаю, всем нам в жизни приходилось слышать такое слово как «фреймворк». Многие из вас действительно вникли в саму суть данного слова, а кто-то просто принял к сведенью определение слова и не стал вникать во все подробности. Так или иначе серия статей «Первые шаги» нацелена на новичков в программировании на PHP, поэтому ничего страшного если вам совершенно незнакомо слово «фреймворк».
Но в нас билась кровь цветом ярче рубина...
Твой черед впереди. Участь смертных едина.
Все, что живо сейчас, завтра пепел и глина."
Омар Хайям
Фреймворк это набор всевозможных библиотек (инструментов) для быстрой разработки повседневных (рутинных) задач. Чаще всего использует одну из распространенных архитектур приложения (к примеру MVC) для разделения проекта на логические сегменты (модули). Главная цель фреймворка, предоставить программисту удобную среду для проекта с большим и хорошо расширяемым функционалом.
Если вам удалось понять верхний абзац – я очень за вас рад. Однако для того чтобы убедится на сто процентов что вы поняли саму суть слова – я поясню еще раз. Всем нам очень часто при программировании сайтов приходилось использовать сторонние библиотеки с Интернета, к примеру для загрузки и обработки форм (валидация, сохранение, работы с базой данных и др). Многие из таких библиотек которые приходилось использовать в проектах – вы выделяли в отдельную папку и перемещали от проекта к проекту. Если вам знаком данный подход, тогда вы подсознательно нуждались в фреймворке.
Сам фреймворк предлагает нам уже встроенные классы для: работы с базой данных, создания функциональных форм, валидации, логирования и др. Все эти классы можете легко использовать во всех ваших проектах, при этом их подключение и использование будет максимально простым! Также большим плюсом в Yii (фреймворк с которым мы в дальнейшем будем работать) является отличная поддержка расширений, которая позволяет нам подключать сторонние библиотеки.
Еще один из плюсов - структурирование архитектуры вашего приложения. Фреймворк содержит в себе перечень стандартных папок в которых предполагается что вы будете размещать необходимые части вашего приложения (отдельная папка для тем, контроллеров, расширений, конфигурационных файлов). Поверьте, мне это действительно плюс, потому что позволяет вам поддерживать все файлы в порядке на нужных местах! (разобраться для чего каждая из папок – очень просто, и об этом мы поговорим в следующих уроках).
Что такое Yii?
Yii – это фреймворк написанный на языке PHP. Главным плюсом Yii является отличная поддержка ООП, скорость работы и, конечно же, тех поддержка от разработчиков. Фреймворк включает в себя большой набор библиотек, которые помогут вам в создании полноценного веб приложения отвечающего всем современным стандартам (интегрированное использованием Ajax, встроенная поддержка интернационализации приложения, простой инструмент работы с базой данных). Тот код который занимал бы у вас 100 строчек чистого php кода может быть сокращен до десяти благодаря встроенным методам фреймворка. Yii является бесплатным программным обеспечением и распостраняется под лицензией «new BSD».
Конец
В принципе я люблю писать краткие статьи и не растягивать объяснения на несколько абзацев, но с серией уроков «Первые шаги» всё будет по-другому. Как вы понимаете, статьи у нас нацелены на людей с минимальным пониманием происходящего, поэтому если для вас читать столько материала тяжело - переходите сразу к API.
Всем спасибо за прочтение моих трудов. Если у вас есть замечания, дополнения или вы просто хотите поблагодарить за статью – пожалуйста, не стесняйтесь, мне будет приятно читать ваши комментарии.
- Читать дальше Шаг 2: Почему стоит выбрать Yii?
Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
- Всем привет! Меня зовут Тимур и это мой небольшой Блог. Я очень рад что в интернете все больше находится ... "Hello World! Hello Yii.."
- Сегодня мы разберем как подключать мою «математическую капчу» на обычный движок php магазина. Название движка я не знаю, да и ... "Подключаем yii капчу к сайту на другом движке"
- Хочу вас обрадовать выходном новой версии замечательного Yii фреймворка. Данный релиз был немного задержан посравнению с обычным графиком, но ... "Yii Framework 1.0.5"

[guest] Максим
Было сказано: Пятница, 15 Май 2009
Интересная статья! Жду продолжения!
Придерживайтесь пожалуйста и дальше такого стиля (подробного). Спасибо!

[guest] Sultan
Было сказано: Суббота, 16 Май 2009
Огромное спасибо вам за отличные статьи на тему Yii!

[guest] Андрей
Было сказано: Вторник, 10 Ноябрь 2009
А изображение в начале статьи ваше? Если нет, то «пожалуйста, разместите ссылку на страницу откуда вы его взяли».
Ну, это так, совет.
А вообще, спасибо за сайт, добавил в избранное, буду читать.
З.Ы. И с каптчей уточнили бы, что надо результат выражения написать, а то один раз я уже ошибся, тупо переписав.
И, кстати, значение поля «Имя» при ошибке каптчи сменилось на дефолтное Гость. Хотя не должно, по логике вещей. Хорошо, что хоть содержание комментария осталось.

[adm] zolter
Было сказано: Вторник, 10 Ноябрь 2009
Изображение взято с открытых источников без указания автора. Копирайта на самом изображении так же нету, так что перво источник определить не возможно. А размещать ссылку на сайт который так же нашел изображение в гугле - не вижу необходимым.

[adm] zolter
Было сказано: Среда, 11 Ноябрь 2009
Я работал с зендом достаточно много и не вижу смысла повторятся. Очень много уже сравнений образных писал. В кратце скажу что не вижу смысла использовать чистый Zend, если в Yii в можете подключить ЛЮБОЙ класс из Zend-а всего в одну строчку. При этом вы имеете гибкость плюс расширяемость Yii, и большой репозитарий классов от Zend

[guest] Александр
Было сказано: Пятница, 13 Ноябрь 2009
Спасибо Вам большое за Ваш блог.
Всё изложено очень хорошо.
Если же Вам не трудно ответе мне на несколько вопросов.
Я ознакомился с Вашим курсом "Создаем блог вместе".
Многое мне понятно. Но вопрос в следуещем.
У меня есть большой проект кинотеатра www.mori-cinema.ru
Хотел бы перевести его на Yii, но не могу понять концепцию.
Т.е. с блогом(маленьким проектом) понятно. Там мало таблиц и прочего. Но у меня есть разные таблицы и для фильмов и для расписания и для бронирования и т.п. Причем они пересекаются.
Есть методы которые нужны для всего проекта. Куда их помещать? И по какому принципу вообще вести проектирование моделей и контроллеров. Буду Вам благадерен если расскажите хотябы в кратции или скажите куда копать.
Спасибо

[guest] Александр
Было сказано: Пятница, 13 Ноябрь 2009
Прошу прошения. Я решил уточнить предыдущий пост.
Я кое-что понял.
Скореe всего контроллером должен быть для каждого атрибута page=
Спасибо вам еще раз за Ваш труд

[adm] zolter
Было сказано: Пятница, 13 Ноябрь 2009
Ну все в принципе не так сложно.
Первым делом вы создаете под каждую таблицу с которой собераетесь работать - свою модель. При этом связываете их через relations. Об этом в кратце я говорил при создании Блога.
Далее вы создаете нужные контроллеры. К примеру отдельный контроллер для фильмов. Который будет отвечать за вывод карточки фильмов, страницы поиска по фильмам и тп. И т.д.
Вам решать сколько создавать контроллеров. Тут дело удобства. Я советовал бы к примеру посидеть, поразбивать на логические части разделы вашего сайта и создать для них свои контроллеры. Это помогло бы в будущем легко править код, и находить нужные файлы отображения из всей кучи.

[guest] Александр
Было сказано: Пятница, 13 Ноябрь 2009
Спасибо. Буду так и делать.
Ещё раз спасибо!!!

[guest] Александр
Было сказано: Пятница, 13 Ноябрь 2009
Да еще в догонку вопрос...
Допустим я получаю список фильмов на сегодня путем получения данных из двух разных таблиц в переменную $filmAll.
Где располагать эту переменную, как я понимаю в модели и использовать в контроллере.
Или же получать в её в контроллере из модели?
Как лучше?
Спасибо еще раз огромное!

[adm] zolter
Было сказано: Пятница, 13 Ноябрь 2009
Ну я так понимаю у вас две разные таблицы связаны через relation? Т.е. по сути вы работаете с одной моделью? Так вот, эти данные вы получаете в самом контроллере через обычный findAllByAttributes.
Если же вы получаете данные из двух разных моделей, потом над ними проводите какие то действия и тп - то лучше это выделить как отдельный метод в модели. И обращаться к нему к примеру для получения всех фильмов со всеми связями.
Хотя возможно я вас не верно понял.

[guest] Александр
Было сказано: Суббота, 14 Ноябрь 2009
Да всё правильно поняли.
Спасибо за ответ.
Замечательно.
Кстати интересно Вы сами "дошли" до понимания как правильно проектировать или есть материал где-то на эту тему.
И еще Вы всё замечательно описываете рассказываете просто супер.

[adm] zolter
Было сказано: Суббота, 14 Ноябрь 2009
Пожалуйста :)
Многое на своих же граблях учится :) Это не первый фреймворк с которым я работаю. До него успел уже набить руку и получить понимание как что надо делать. Так же в свое время помогли книжки по проектированию базы и много статей-блогозаметок по созданию высоко нагруженных систем.
п.с. пасиба :)

[guest] Гость
Было сказано: Четверг, 11 Март 2010
Пишу на ПХП давно (хоть и не часто :), но только щас начал понимать с "тупым" написанием влоб хорошего сайта не создать. надо подключать много всего и прикручивать. Как вы и писали, начал интуитивно понимать что пора переходить на какой-то грамотный фреймворк. Все эти понятия для меня новы и я рад что попал на вам блог - пояснения "для самых маленьких" - это как раз то что мне надо :) . Я пока даже толком не понимаю просто как создать элементарную сайт-визитку на этом движке (а целесообразно ли?... :)... буду разбираться с вашей помощью! Спасибо!
О! Совсем забыл - карикатура вверху - похоже моего любимого автора - Бельжьо или как-то так :) Очень остроумные сатиры делает

[guest] Виктор
Было сказано: Среда, 30 Март 2011
В кои то веки по-человечески объяснено, что такое фреймворк. Спасибо)

[guest] Дмитрий
Было сказано: Суббота, 24 Декабрь 2011
Добрый день интересная статья !!!ТЕПЕРЬ БУДУ ЗНАТЬ, ЧТО ТАКОЕ Фреймворк.


