В настоящее время я очень доволен созданием инструментов / веб-приложений в среде ASP.NET. Я не собираюсь покидать ТБХ, так как мне действительно нравятся C #, ASP.NET, MVC 3, Visual Studio и т. Д.
Однако сейчас я почти ничего не знаю о PHP, и это похоже на недостаток, который я хотел бы исправить.
Существуют ли книги (или другие методы обучения), которые могли бы стать хорошим источником для изучения PHP? Очевидно, что есть много начинающих книг по PHP, но я уже знаком со многими вопросами, связанными с созданием веб-страницы, и заинтересован сосредоточиться на самом PHP, который может быть несовместим с областью некоторых начинающих книг по PHP.
Я немного просмотрел руководство по PHP, и оно, кажется, не так гладко, как могло бы быть идеально. Есть ли подходящая книга по PHP? Я скучаю по связности, которую содержит большинство книг при просмотре этих образцов. Информации больше, но она больше напоминает справочную информацию при кодировании, чем средство первичного обучения.
Ответы:
Лучший ресурс для изучения 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 можно перевести очень большому и полезному сообществу, огромной распространенности ваших навыков, миллионам и миллионам блогов, но его также можно перевести на несколько тысяч терабайт дрянного кода.
источник
У Янниса есть много хорошего, что можно сказать, но я прочитал « Создайте свой собственный веб-сайт, управляемый базой данных», 4-е издание , и он был наполнен всем, что мне нужно было знать, чтобы начать правильный путь к разработке профессиональных веб-приложений на PHP.
Я также работал исключительно над .NET, прежде чем начал заниматься PHP. С PHP намного проще работать, но у него есть некоторые специфические проблемы при разработке крупномасштабных приложений, и эта книга поможет вам в этом разобраться.
Одна проблема для меня заключалась в том, что PHP не является строго объектно-ориентированным языком. Он имеет всевозможные функции в процедурной и объектно-ориентированной формах, и для его привыкания требуется некоторое время, начиная с языка, в котором все организовано в классы и пространства имен.
Еще один вопрос - как легко можно все перепутать в PHP, что еще более усложняет ситуацию. В .NET инструменты, которые вы используете, такие как Visual Studio, помогают вам практиковать хорошие стандарты кодирования, выполняя часть работы за вас. Обычно на странице .aspx HTML-разметка и код C # разделяются на два файла.
Если вы интенсивно используете инструменты .NET и предпочитаете работать с элементами управления ASP.NET, еще одной проблемой для вас будет отсутствие элементов управления (GridView и т. Д.) В PHP. Я знаю, что есть много библиотек / фреймворков, которые дают вам нечто похожее, но они не являются частью базового пакета PHP.
Еще одна проблема для меня заключалась в том, как в PHP интенсивно используются массивы и хэши, служащие больше как коллекции в .NET. Они повсюду, и было бы хорошо привыкнуть к тому факту, что массивы - это не просто упорядоченный список объектов одного типа / скалярных единиц. Они могут представлять собой коллекцию объектов для размещения всех видов вещей.
Я могу продолжать и продолжать, но упомяну одну из основных вещей, которые я нахожу очень специфическими для PHP (я не знаю, что это может быть распространено и в других языках), это то, как часто используются функции include и связанные с ними так обычно Я могу сказать, что книга из Sitepoint поможет вам освоить все это.
источник
peculiar issues when developing large scale applications
кого вы определили? Так как у вас есть фон .net в качестве оператора, было бы полезно узнать, что люди .net считают специфическими в php.when developing large scale applications
. В любом случае, я больше думал о концептуальных вопросах и подходах, например, PHP использует совершенно другой подход к .Net в вопросах масштабирования, что-то вроде этого. У меня очень мало опыта работы с .Net, поэтому мне было бы интересно узнать, что люди .Net находят концептуально своеобразными при переходе на PHP. Но такие вещи, как тот факт, что PHP является мультипарадигмой, конечно, ожидаемы.