Изучаем PHP и MySQL правильно. Личный опыт как доказательство: язык программирования PHP – главный в Сети Уроки программирования на php

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

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

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

<% echo "Hello world"; %>

echo "Hello world" ;

<% echo "Hello world" ; %>

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

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

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

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

14. Поймите разницу между одинарными и двойными кавычками

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

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

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

и пристроив его где-нибудь на сервере, вы сможете незамедлительно узнавать все об окружении своего сервера. Тем не менее, множество новичков поместит файл, содержащий phpinfo() в webroot сервера. Это чрезвычайно небезопасная практика, и если чей-то пытливый ум получит доступ, он может потенциально сглазить ваш сервер. Убедитесь, что phpinfo() находится в безопасном месте, а в качестве дополнительной меры удалите его, как только закончите.

16. Никогда, никогда не доверяйте своим пользователям

Если в приложении есть места для входа пользователей, вы всегда должны предполагать, что кто-то попробует ввести сомнительный код. (Мы не подразумеваем, что ваши пользователи — плохие люди. Это просто здравый смысл.) Отличный способ уберечь свой сайт от хакеров – всегда инициализировать свои переменные для защиты сайта от XSS-атак. На PHP.net есть пример должным образом закрытой формы с инициализированными переменными:

if (correct_user ($_POST [ "user" ] , $_POST [ "password" ] ) {

$login = true ;

if ($login ) {

forward_to_secure_environment () ;

17. Храните пароли зашифрованными

Многие новички в PHP часто сбрасывают деликатные данные, такие как пароли, в базу данных, не применяя шифрование. Рассмотрите использование MD5 для шифрования паролей перед тем, как выкладывать их базу данных.

echo md5("myPassword"); // renders -

echo md5 ("myPassword" ) ; // renders -

Возражение: Тем не менее, помните, что хэши MD5 уже давно скомпрометированы. Безусловно, они скорее безопасны, чем нет, но с помощью гигантской “спектральной таблицы” хакеры могут восстановить ваш хэш. Для обеспечения еще большей безопасности обдумайте возможность добавления «соли» (помех в виде «белого шума»). «Соль» – это обычно дополнительный набор символов, которые вы присоединяете к пользовательской строке.

18. Используйте инструменты визуализации баз данных

Если вам кажется сложным планировать и изменять базы данных для своих PHP-приложений, можно было бы рассмотреть возможность использования инструмента визуализации баз данных. Пользователи MySQL могут работать с DBDesigner и MySQL Workbench для визуального дизайна своих баз данных.

19. Используйте буферизацию вывода

Буферизация вывода – это простой способ очень сильно улучшить качество и скорость вашего PHP-скрипта. Без буферизации вывода ваш скрипт будет показывать HTML на странице так, как он обрабатывается – частями. Добавление буферизации вывода позволяет PHP хранить HTML как переменную и посылать его на браузер единой порцией.

Для активирования функции буферизации вывода просто добавьте ob_start() как здесь в начале файла.

Возражение: Хотя это и не требуется, обычно считается хорошей практикой просто взять и прикрепить функцию “ob_end_flush();” к концу документа. P.S. Хотите также сжать HTML? Просто смените “ob_start();”на “ob_start(‘ob_gzhandler’)”;

XHTML

untitled

untitled

20. Оберегайте свой скрипт от атаки SQL-injection

Если вы не отделяете (escape) символы, использующиеся в строках SQL, ваш код уязвим для атаки SQL-injection. Избежать этого можно, используя либо функцию mysql_real_escape_string (прим. перев. для отделения символов), либо подготовленные операторы SQL (prepared statements).

Вот пример mysql_real_escape_string в действии:

$username = mysql_real_escape_string($GET["username"]);

$username = mysql_real_escape_string ($GET [ "username" ] ) ;

И подготовленного оператора:

21. Попробуйте ORM

Если вы пишете объектно-ориентированный PHP, то можете использовать OR-mapping (ORM). ORM позволяет вам преобразовывать данные между реляционными базами данных и языками объектно-ориентированного программирования. Короче говоря, ORM дает возможность работать с базами данных таким же образом, каким вы работаете с классами и объектами в PHP.

Для PHP есть множество ORM-библиотек, таких как Propel, а также ORM встроен в фреймворки PHP, такие, как CakePHP.

22. Кэшируйте страницы, управляемые базой данных

Кэширование PHP-страниц, управляемых базой данных – отличная идея для улучшения скорости загрузки и производительности своего скрипта. В действительности не так уж трудно создать и извлечь статические файлы содержимого при помощи нашего доброго друга ob_start(). Вот пример, взятый со Snipe.net:

// TOP of your script $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 hours // Serve from the cache if it is younger than $cachetime if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo ""; exit; } ob_start(); // start the output buffer // Your normal PHP script and HTML content here // BOTTOM of your script $fp = fopen($cachefile, "w"); // open the cache file for writing fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file fclose($fp); // close the file ob_end_flush(); // Send the output to the browser

// TOP of your script

$cachefile = "cache/" . basename ($_SERVER [ "SCRIPT_URI" ] ) ;

$cachetime = 120 * 60 ; // 2 hours

// Serve from the cache if it is younger than $cachetime

if (file_exists ($cachefile ) && (time () - $cachetime < filemtime ($cachefile ) ) ) {

include ($cachefile ) ;

От автора: необходимо ли знать язык программирования PHP? Если собираетесь связать свою судьбу с сайтостроением, то придется. Даже если очень не хочется! Почему так? На все распространенные «почему», связанные с этим языком, мы попытаемся ответить в нашем материале.

Раствор, который «скрепляет» интернет

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

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

Доказывать роль PHP в создании интернет – вещь неблагодарная. Тут, как говорится, могут начать выступать сторонники других серверных языков. Мол, «препроцессор гипертекста» (так расшифровывается аббревиатура PHP) уже отжил свое. Многие из его функций реализованы даже в …

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

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

Если вас интересует, почему так скаканул Java, то отвечу: благодаря мобильной операционке Android, приложения под которую разрабатываются на этом языке.

Собственные грабли

Еще в начале двухтысячных я занимался «изысканиями» в сфере программирования. Все пытался выяснить, к какой «партии» разработчиков стоит примкнуть, изучению какой дисциплины посвятить свою жизнь.

Как язык программирования PHP для начинающих я не рассматривал в принципе. Он казался чересчур запутанным. Вот другое дело ASP.NET: коммерческий язык, основанный на C#. Ох, какие воздушные замки я тогда строил! И для этого были все предпосылки:

Технология разработана таким «гигантом мысли», как Microsoft.

Наличие специализированного ПО – мощного редактора Visual Studio.

Обширная и хорошо описанная документация.

Надежда на «здоровое» будущее.

ASP.NET в отличие от PHP давался мне намного легче. Visual Studio автоматизировала большое количество операций по написанию серверных скриптов. Например, благодаря отличному визуальному редактору на создание веб-страницы уходило всего несколько минут. Путем перетаскивания элементов управления и прописыванием в редакторе их стилей можно было сделать сайт меньше чем за час!

А вот язык программирования PHP с нуля мне сразу не дался. Честно, я пытался с ним подружиться (надо же было, как-то сдавать экзамен). Но при изучении его основ он показался мне черствым и даже холодным.

В общем, занялся я ASP.NET. Состряпал первый свой сайтик. Ну, в среде разработки вроде все функционирует. Кроссбраузерность проверил в нескольких популярных браузерах. Думаю, пришло время и «повоевать». Так сказать, показать свое «детище» всей стране (как минимум). Вот тут и оказались» грабли».

Мои попытки найти в Рунете хостинг с поддержкой ASP.NET так и не увенчались успехом. Было, конечно, несколько платных площадок, но цены за размещение на них сайта были явно не «студенческие».

Кое-как нарыл я в «Буржунете» бесплатный вариант хостинга (кстати, спонсируемого Microsoft). Ну «поклацал», насладился широтой своей мысли, а дальше дело не пошло. И все из-за того, что большая часть сайтов уже тогда делалась на PHP.

После того, как определитесь и точно поймете, что готовы изучать PHP язык программирования, поищите самоучитель для новичков «под себя». Главное, чтобы вы понимали, что автор издания хочет донести своим читателям. Сразу приготовьтесь «отвалить» хорошую сумму за качественную литературу.

Но лучше применять комплексный подход – добавить еще и толковый . Это позволит оттачивать свое умение сразу на практических примерах. И мой вам совет – поменьше занимайтесь копипастом кода! Почему, сейчас поясню.

Когда вы будете набирать примеры скриптов самостоятельно, то быстрее привыкните и запомните особенности синтаксиса PHP. Что касается литературы, то выбирайте самоучитель с основами программирования на PHP. И желательно, чтобы автор выкладывал код всех приводимых примеров на своем ресурсе в Сети.

Также сразу перед началом обучения скачайте и установите Open Server. Этот программный пакет включает в себя все среды, которые потребуются вам для написания и тестирования кода.

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

На первые несколько пунктов попробую написать рекомендации в свободной форме.

Первое и самое главное - чтобы хорошо изучить программирование на РНР, надо хорошо изучить программирование. Это очень важная вещь. Большая часть людей, пишущих на РНР, не имеют ни малейшего представления о программировании. Даже о таких базовых вещах, как форматирование кода, отладка, профайлинг, обработка ошибок, файловые операции. Можно заметить, что я не говорю об ООП. Это совсем отдельная тема, ООП надо учить специально. К сожалению, из 100 человек, которые говорят, что знают ООП, 90 являются банальными копипастерами, выучившими синтаксис, но не понимающими смысла объектов. Но чтобы играть в шахматы, недостаточно знать, как ходят фигуры.

Ещё неплохо бы ответить себе на вопрос - для чего ты хочешь выучить программирование на РНР? Вопрос совсем не праздный. Многие люди смешивают в нем кучу разных понятий. К примеру, здесь уже упоминали CMS. и действительно, если речь идёт о зарабатывании денег, то кастомизация Джюмлы и написание к ней говномодулей в финансовом плане куда более выгодны, чем умение писать что-либо с нуля. Для фриланса, во всяком случае.

Вообще, РНР можно использовать очень по-разному. И для каждого случая это будет свой язык.

  • Можно склепать гостевую или сайт-визитку на «голом» РНР - и ничего плохого или позорного в этом нет. Наоборот - это плюс языка, который годится и для таких целей, не таща за собой пару миллионов строк кода ради сайта из пятисот.
  • Можно написать профессиональный портал, взяв за основу какой-то из существующих фреймворков, и заниматься его развитием.
  • Можно написать кастомный хайлоад проект, для которого нужно будет писать собственный фреймворк опять на голом РНР.
  • Можно, как уже говорилось, клепать сайты на основе какой-нибудь ЦМС.

Вариантов масса! поэтому нужно определиться сначала, чего хочется.

Там выше говорили про JS+CSS - не надо слушать, это полная ерунда. Фронтенд программирование - совсем отдельная вещь, куда больше визуальная, чем абстрактная. И, слава богу, все больше работодателей начинают понимать это. Хотя опять же - если фрилансишь и на все руки мастер - то без этого никуда.

Но если работать хардкорным серверным программистом в команде, то об HTML/JS/CSS нужно иметь только общее представление (поскольку тексты на этих языках являются, вообще-то, практически единственным результатом работы РНР).

А вот что обязательно нужно хорошо знать из сопутствующих технологий - это протокол НТТР, устройство файловой системы, работа c командной строкой в линуксе.

Теперь по остальным

Mysql всё ещё является краеугольным камнем хранения данных в вебе. Нужно знать и понимать джойны, индексы

Фреймворки - обязательно. Тут, правда, стоит проблема выбора, но принципиальной разницы между ними нет. Yii - неплохой выбор.

Гитхаб тебе не нужен, знать его не обязательно. Знать надо git.
А вот что является обязательным для веб-программиста - это умение пользоваться гуглем. Хотя бы на уровне умения скопипастить в поисковую форму сообщение об ошибке или написать вопрос «Что такое git» ;-)

Потому что для работы в команде какую-либо систему контроля версий знать надо, а git является стандартом де-факто. Понимать принцип работы и базовые команды - чекаут, коммит, пуш.

Знание HTML позволяет получить представление о том, как создавать сайты. И даже дает возможность самостоятельно разрабатывать интернет-ресурсы. Однако использование этого языка разметки носит ограниченный характер вследствие статичности созданных с его помощью страниц. В частности, применяется он в большинстве случаев для разработки сайтов-визиток. Все дело в том, что при необходимости внести какие-либо изменения редактировать требуется каждую страницу в отдельности, и если их у ресурса несколько десятков или сотен, подобный процесс будет не только утомителен, но и растянут во времени.

Оптимизировать администрирование сайта позволяет использование PHP (акроним для PHP: Hypertext Preprocessor «гипертекстовый препроцессор») – скриптового языка программирования, позволяющего создавать динамически наполняемые веб-страницы. Его применение дает возможность сделать ресурс действительно интерактивным, а процесс управление сайтом – простым и менее затратным в плане приложенных усилий. Онлайн курс PHP для начинающих от WebShake помогает овладеть основами скриптового языка с нуля, научиться создавать динамические ресурсы, которые легко модифицировать и поддерживать.

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