Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > Легкий в изучении фрэймворк


Автор: artfabrique 18.6.2011, 21:55
Привет всем!
Спустя 5 лет харкорного AS3 ООП программирования в команде с хорошим PHP девелопером решил сам заняться серверной разработкой.
PHP я занимался давно, когда было еще версия 2 или 3 с чем-то. Сейчас язык сильно мутировал с тех пор и скачав несколько фрэймворков (Symfony, Yii, CakePHP) я понял что наверстать упущенное просто нереально с наскока. Как я написал, я AS3 программист, привык работать в рантайме. Попытавшись разобраться с Symfony я понял что не могу сломать в голове стереотип функционального языка PHP и переключиться на классы, объекты и т.д. 
Прямо беда какая то. Код читать - не проблема в рамках одного скрипта. Когда приходит время таких больших "систем" как симфони я просто не могу представить как это все может работать не в рантайме а только одноразого проскакивать чтобы отдать "ответ" )

Посидев пару дней я нашел причину - отсутствие реально удобного IDE для написания OOП кода (Для AS3/Java я использовал Eclipse FDT).
У PHP, как я понял, с этим огромные проблемы. Скачал PDT и NetBeans и понял что уровень автокомплита, эксплоринга кода, и проверки ошибок во время его написания не состовляет и 20% от того какие возможности дают IDE для рантаймовых компилируемых языков типа Java/AS3

Первый раз со сложностями автокомплита я столкнулся при использовании Symfony2 и NetBeans. Там просто нет понятия "подключаемая библиотека".
При кое-каком автокомплите по классам Symfony я не могу понять ни типов данных ни результирующих типов данных. После тотальной типизации в AS3 я наконец понял в чем, собственно её удобство!

Итак мой вопрос или даже просьба, выполнению которой я максимально постараюсь помочь:
Давайте напишем статью в коллаборации с кем нибудь для новичков вроде меня, которые "выпали из колеи". Именно выпали. Раньше на PHP я запросто мог сделать поиск по сайту с хип таблицами и с учетом морфологии. Это не хвастовство и не претендует на какие то супер знания. НО! Это же не начальный уровень? Я просто в шоке как сильно поменялся язык с тех пор.

Собственно предложение мое написать статью для людей из AS3/Java которым очень хочется опять выучить PHP.

Автор: artfabrique 19.6.2011, 08:44
Прикольно ) 32 просмотра — реакции ноль. Ну хоть бы ответили, что не интересно там и т.д.

Автор: Shogun 19.6.2011, 12:27
Незнаю как другие но я не фижу смысла в создании такой статьи ибо документации и примеров по ООП в PHP куча.

Что касается фрэймворков (Symfony, Yii, CakePHP) то Вы не с той ноги встали и ошиблись с выбором.
Вам нужно сначало ознакомится с нововведениями в последних версия PHP 4/5/5.3 раз с ним работали, далее пройтись по основам ООП в PHP, после чего изучить самые популярные паттерны в том числе MVC который и является основой для почти всех фреймворков, а уже потом выбрать фреймворк для работы, и можно выбрать что-то по проще, например CodeIgniter или лучше Kohana.

Насчет IDE ничего не могу сказать, да уступает по сравнению с AS3 но и не вижу реальную необходимость в полноценной IDE для PHP, сам пользуюсь Geany в Убунту.

Что насчет типизации то PHP никогда таким не был и надеюсь не будет полно-типизировваным языком как например AS3.

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

Автор: artfabrique 19.6.2011, 21:34
Цитата(Shogun @ 19.6.2011,  12:27)
Что касается фрэймворков (Symfony, Yii, CakePHP) то Вы не с той ноги встали и ошиблись с выбором.
Вам нужно сначало ознакомится с нововведениями в последних версия PHP 4/5/5.3 раз с ним работали, далее пройтись по основам ООП в PHP, после чего изучить самые популярные паттерны в том числе MVC который и является основой для почти всех фреймворков, а уже потом выбрать фреймворк для работы, и можно выбрать что-то по проще, например CodeIgniter или лучше Kohana.

Ну вот именно, что вроде как на PureMVC делаю в AS3 проекты, а как в PHP без пакаджей все построено просто не врубаюсь. Никак не сломать в голове что MVC может быть и не "рантаймовым".
Про фрэймворки мне бы найти пример полноценного сайта какого нить на одном из фрэймворков с коментами, чтобы понять каким образом распределяются задачи именно по классам обычно и какая "нормальная структура проекта".

В AS3 все понятно было - подрубил 20 разных пакаджей, по логическим папкам-пакаджам раскидал свои отэкстенденные классы, и готово.
А вот на какие логичесие части мелкие и крупные обычно делится стандартный сайт-магазин, например, в контексте PHP я понять не могу..

Автор: Shogun 19.6.2011, 22:53
Цитата(artfabrique @  19.6.2011,  21:34 Найти цитируемый пост)

Ну вот именно, что вроде как на PureMVC делаю в AS3 проекты, а как в PHP без пакаджей все построено просто не врубаюсь. Никак не сломать в голове что MVC может быть и не "рантаймовым".
Про фрэймворки мне бы найти пример полноценного сайта какого нить на одном из фрэймворков с коментами, чтобы понять каким образом распределяются задачи именно по классам обычно и какая "нормальная структура проекта".

В AS3 все понятно было - подрубил 20 разных пакаджей, по логическим папкам-пакаджам раскидал свои отэкстенденные классы, и готово.
А вот на какие логичесие части мелкие и крупные обычно делится стандартный сайт-магазин, например, в контексте PHP я понять не могу.. 

Как я и Вам написал, нужно начать с основ, как вы хотите что-то понять не прочитав ничего? Так и дальше будите ныть про "рантайм".

Распределение задачь и структуру а также примеры можете изучить по примеру CodeIgniter так как он хорошо документирован. http://code-igniter.ru

А насчет пакаджей то начаная с версии 5.3 появились нэймспайсы в которых можете хранить свои классы или функции как и в AS3.

В AS3 вы подключаете классы из пакаджетов через import (package.class) а тут это делается через функции include(dir/file.php) или require(dir/file.php), или автозагрузчик...

Автор: artfabrique 19.6.2011, 23:47
Цитата(Shogun @ 19.6.2011,  22:53)
Распределение задачь и структуру а также примеры можете изучить по примеру CodeIgniter так как он хорошо документирован. http://code-igniter.ru

А насчет пакаджей то начаная с версии 5.3 появились нэймспайсы в которых можете хранить свои классы или функции как и в AS3.

Спасибо за совет про CodeIgniter!
А про нэймспыйсы - да понял когда с симфони рабирался.

А не посоветуете книжку по вашему мнению про OOP PHP?

Добавлено через 4 минуты и 39 секунд
На статью все таки постараюсь написать ) Чтобы другим было проще и меньше подобных вопросов было. У этого форума хороший индекс в гугле, так что думаю выдержки из книжек + примеры на "AS3нгло-PHPусского" разговорника пригодятся толпе.

Автор: Shogun 20.6.2011, 00:07
Цитата(artfabrique @  19.6.2011,  23:47 Найти цитируемый пост)
А не посоветуете книжку по вашему мнению про OOP PHP?

Я не прочел ни одну книгу оп PHP, и не вижу в этом необходимость, но по поиску http://www.phpworld.ru/books/ http://www.greycoder.ru/2008/12/5-php.html как минимум. Google в помошь.

Цитата(artfabrique @  19.6.2011,  23:47 Найти цитируемый пост)
На статью все таки постараюсь написать ) Чтобы другим было проще и меньше подобных вопросов было. У этого форума хороший индекс в гугле, так что думаю выдержки из книжек + примеры на "AS3нгло-PHPусского" разговорника пригодятся толпе. 

Могу пожелать только удачи, увидем что получится.

Автор: perloid 20.6.2011, 12:51
Цитата(artfabrique @  19.6.2011,  21:34 Найти цитируемый пост)
 Никак не сломать в голове что MVC может быть и не "рантаймовым".


А что в вашем понимании "рантайм"? И почему вы решили что "рантайм" как то относится к шаблону МVС.
Еще легковесный фреймворк - http://fuelphp.com/ 
Codeigniter всетаки не избавился от наследия php4 даже во второй версии.

Автор: artfabrique 20.6.2011, 14:46
Цитата(perloid @ 20.6.2011,  12:51)
Цитата(artfabrique @  19.6.2011,  21:34 Найти цитируемый пост)
 Никак не сломать в голове что MVC может быть и не "рантаймовым".


А что в вашем понимании "рантайм"? И почему вы решили что "рантайм" как то относится к шаблону МVС.
Еще легковесный фреймворк - http://fuelphp.com/ 
Codeigniter всетаки не избавился от наследия php4 даже во второй версии.

Ну в рантайме по-другому MVC работает немного. Логика немого другая. Понятия "событий" другие. По сути в пыхе получается, любые события инициируются "клиентом", а не тогда когда происходят реальные изменения.

Автор: perloid 20.6.2011, 16:42
Цитата(artfabrique @  20.6.2011,  14:46 Найти цитируемый пост)
Ну в рантайме по-другому MVC работает немного. Логика немого другая. Понятия "событий" другие. 

Событийная модель везде одинаковая. Применима и к php. Просто не так распространена.

Добавлено через 3 минуты и 46 секунд
Цитата(artfabrique @  19.6.2011,  21:34 Найти цитируемый пост)
Ну вот именно, что вроде как на PureMVC делаю в AS3 проекты, а как в PHP без пакаджей все построено просто не врубаюсь. 


ну так возьмите тогда http://puremvc.org/component/option,com_wrapper/Itemid,167/

Автор: linuxoid 30.9.2011, 09:49
Вот тут очень хорошо описано, что такое MVC на PHP. В короткой статье представлен плавный переход от функционального кодинга к ООП. Если с английским все в порядке, то рекомендую.

http://symfony.com/doc/current/book/from_flat_php_to_symfony2.html

Автор: Absinthe 2.10.2011, 01:50
Цитата

У PHP, как я понял, с этим огромные проблемы. 
 Все лучше, чем у AS3.

Для AS3 только IDEA нормальная(ну и Flex Builder), а для PHP кроме них есть еще пара вариантов.
Но я агитирую за ту же IDEA(PhpStorm)

Цитата

Это же не начальный уровень?
 Впринципе  начальный.

Цитата

А не посоветуете книжку по вашему мнению про OOP PHP?
 Ничем не отличается от AS3.

Короче мой совет. Как я понимаю тут налицо знания общего программирования и синтаксиса PHP, но без опыта PHP. Тогда просто пару фреймворков посмотреть и на них простейшие сайты склепать(ну типа блоги как livejournal - с обучением неделька уйдет на реализацию).

Советую ZF и Symfony фреймворки попробовать, в такой последовательности.

Автор: cloder 24.11.2011, 11:50
Странно - вроде и в PDT и в NetBeans есть функция добавить любую библиотеку для парсинга,
и тогда автокомплит будет работать и по ней тоже.
Сам я пользуюсь халявной http://www.codelobster.com. Мне все нравится.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)