Что такое хороший способ познакомиться с PHP, исходя из фона ASP.NET? [закрыто]

10

В настоящее время я очень доволен созданием инструментов / веб-приложений в среде ASP.NET. Я не собираюсь покидать ТБХ, так как мне действительно нравятся C #, ASP.NET, MVC 3, Visual Studio и т. Д.

Однако сейчас я почти ничего не знаю о PHP, и это похоже на недостаток, который я хотел бы исправить.

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

Я немного просмотрел руководство по PHP, и оно, кажется, не так гладко, как могло бы быть идеально. Есть ли подходящая книга по PHP? Я скучаю по связности, которую содержит большинство книг при просмотре этих образцов. Информации больше, но она больше напоминает справочную информацию при кодировании, чем средство первичного обучения.

Эрик
источник
5
Почему вы думаете, что незнание PHP - это недостаток, который вам нужно исправить. Разве знание Rails, Django, J2EE, node.js и т. Д. Не является недостатком, который вам нужно исправить? Есть ли реальная потребность в том, чтобы вы знали и использовали PHP в вашей нынешней сфере деятельности?
Райнос
1
@Raynos Ну, популярность php больше, чем rails, django, node.js вместе взятых ...
yannis
Почему (не флейм) вы хотите стать лучше с PHP? Это для того, чтобы учиться развиваться в более динамичной, интерпретируемой среде или просто потому, что там так много всего?
Сбрентон
1
@Raynos - доля рынка. Вероятность того, что php пригодится для сравнения решений, оценки проблемы, помощи другу и т. Д., Выше, чем примеры, перечисленные вами в imo. У меня нет никакого желания уходить от asp.net, поэтому знание «лучшей» альтернативной среды менее полезно для меня, чем знание самой популярной.
Эрик
1
Получить в MVC3, который может быть хорошим первым шагом
Даниэль Литтл

Ответы:

7

Лучший ресурс для изучения PHP - руководство по PHP . Это очень хорошо написано и хорошо структурировано, и это один из самых больших активов сообщества PHP. Если вы уверены в ASP.net, этого руководства достаточно для начала работы.

Прежде чем вы начнете читать, вы должны установить стек PHP. Вы можете установить Apache, PHP и вашу любимую базу данных (SQLServer в порядке) самостоятельно (это очень просто), или вы можете установить готовый стек, такой как XAMPP . XAMPP установит:

все за один раз (плюс некоторые другие вещи). Одна важная библиотека, в которой она отсутствует, - это phpUnit , которая, очевидно, поможет вам с модульным тестированием.

Затем вы должны установить IDE, очевидный выбор - Eclipse Classic с инструментами разработки PHP (PDT) или Netbeans для PHP . Есть много других, но эти два я рекомендую. Я использую их оба, если вы не можете выбрать между ними, Netbeans немного легче освоить, но вы должны действительно оценить оба и решить для себя, какой из них лучше для вас - я не работал с Visual Studio в долгое время, и я действительно не знаю, какая IDE может показаться вам более знакомой.

Когда вы ознакомитесь с основами из руководства, вы должны начать думать о среде MVC. Опять же, я рекомендую два:

Zend Framework - это зверь, а CodeIgniter - это красота, если вы позволите мне глупую метафору. Zend Framework имеет крутую кривую обучения, поддерживается Zend ( компанией, занимающейся PHP ), и с ним можно делать практически все. CodeIgniter намного проще освоить, имеет хорошую документацию для начинающих, и он довольно популярен. Но большая часть его кодовой базы устарела, так как раньше они поддерживали PHP4.

Для новичка очевидный выбор - CodeIgniter, но не зацикливайтесь на этом. Используйте его как инструмент обучения и как можно скорее перейдите на Zend Framework. Опять же, в мире PHP намного больше MVC-фреймворков, но я рекомендую эти две.

Что касается книг, отличная книга для начинающих - это PHP Objects, Patterns and Practice . Sitepoint «s PHP книги всегда приятно для чтения. Если вы влюбились в PHP, вам стоит подумать о подписке на PHP Architect .

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


Обновление: еще несколько онлайн-ресурсов, предназначенных в основном для начинающих:

и если по какой-то странной причине вы хотите поиграть с PHP на IIS вместо Apache, то хорошим началом будет Microsoft PHP на Windows . PHP на IIS работает и является правильным выбором, особенно для разработчика .Net, но вы действительно должны использовать Apache (и MySQL или PostgreSQL вместо SQLServer), чтобы получить полный опыт PHP, а также убедиться, что ваши навыки переносимы на любые другие популярные ОПЕРАЦИОННЫЕ СИСТЕМЫ. Вы не хотите упустить радость, которая есть у mod_rewrite .


Личное примечание: в PHP много ненависти, и это оправдано . Если вы решите пойти на это, вы должны быть чрезвычайно критически настроены по отношению к различным ресурсам PHP, скриптам, библиотекам, которые вы встретите на своем пути, слишком много дерьма, и для новичка невозможно понять разницу. Огромную популярность PHP можно перевести очень большому и полезному сообществу, огромной распространенности ваших навыков, миллионам и миллионам блогов, но его также можно перевести на несколько тысяч терабайт дрянного кода.

Яннис
источник
2

У Янниса есть много хорошего, что можно сказать, но я прочитал « Создайте свой собственный веб-сайт, управляемый базой данных», 4-е издание , и он был наполнен всем, что мне нужно было знать, чтобы начать правильный путь к разработке профессиональных веб-приложений на PHP.

Я также работал исключительно над .NET, прежде чем начал заниматься PHP. С PHP намного проще работать, но у него есть некоторые специфические проблемы при разработке крупномасштабных приложений, и эта книга поможет вам в этом разобраться.

Одна проблема для меня заключалась в том, что PHP не является строго объектно-ориентированным языком. Он имеет всевозможные функции в процедурной и объектно-ориентированной формах, и для его привыкания требуется некоторое время, начиная с языка, в котором все организовано в классы и пространства имен.

Еще один вопрос - как легко можно все перепутать в PHP, что еще более усложняет ситуацию. В .NET инструменты, которые вы используете, такие как Visual Studio, помогают вам практиковать хорошие стандарты кодирования, выполняя часть работы за вас. Обычно на странице .aspx HTML-разметка и код C # разделяются на два файла.

Если вы интенсивно используете инструменты .NET и предпочитаете работать с элементами управления ASP.NET, еще одной проблемой для вас будет отсутствие элементов управления (GridView и т. Д.) В PHP. Я знаю, что есть много библиотек / фреймворков, которые дают вам нечто похожее, но они не являются частью базового пакета PHP.

Еще одна проблема для меня заключалась в том, как в PHP интенсивно используются массивы и хэши, служащие больше как коллекции в .NET. Они повсюду, и было бы хорошо привыкнуть к тому факту, что массивы - это не просто упорядоченный список объектов одного типа / скалярных единиц. Они могут представлять собой коллекцию объектов для размещения всех видов вещей.

Я могу продолжать и продолжать, но упомяну одну из основных вещей, которые я нахожу очень специфическими для PHP (я не знаю, что это может быть распространено и в других языках), это то, как часто используются функции include и связанные с ними так обычно Я могу сказать, что книга из Sitepoint поможет вам освоить все это.

tsega
источник
У меня есть ссылка на php книги Sitepoint в моем ответе, они все отлично. Не могли бы вы немного расширить свой ответ, чтобы рассказать нам о том, peculiar issues when developing large scale applicationsкого вы определили? Так как у вас есть фон .net в качестве оператора, было бы полезно узнать, что люди .net считают специфическими в php.
Яннис
ОК, Яннис, одной из проблем для меня было то, как PHP не является строго объектно-ориентированным, у него были все виды функций в процедурной и объектно-ориентированной формах, и нужно некоторое время, чтобы привыкнуть к тому, что язык не организован таким образом. в только классы, но все эти пространства имен и все.
Цега
Хм, это общая проблема, а не только when developing large scale applications. В любом случае, я больше думал о концептуальных вопросах и подходах, например, PHP использует совершенно другой подход к .Net в вопросах масштабирования, что-то вроде этого. У меня очень мало опыта работы с .Net, поэтому мне было бы интересно узнать, что люди .Net находят концептуально своеобразными при переходе на PHP. Но такие вещи, как тот факт, что PHP является мультипарадигмой, конечно, ожидаемы.
Яннис
1
С точки зрения подходов, большинство разработчиков ASP.NET склонны использовать пользовательские элементы управления (компоненты - которые представляют собой комбинацию элементов управления HTML с Javascript и серверным кодом) для разработки своих «крупномасштабных» (интенсивно работающих с данными) приложений. В основном это связано с тем, что большинство разработчиков ASP.NET фактически перешли на веб-разработку с разработки приложений для настольных компьютеров, используя почти те же инструменты. Поэтому большинство из них ищут способы перевести свои уже приобретенные навыки работы с пользовательскими элементами управления в соответствии с требованиями веб-разработки.
Цега
Очень хорошая IDE для этой Книги - Netbeans . Отладка PHP так же хороша, как и получается.
Цега