- Задачи на основы языка PHP
- Учебник PHP
- Практика
- Важное
- Регулярки
- Работа с htaccess
- Файлы, папки
- Сессии и куки
- Работа с БД
- Практика по работе с БД в PHP
- Практика
- Движок PHP
- Продвинутые БД
- Аутентификация
- Практика
- ООП и MVC
- Абстрактные классы и интерфейсы
- Трейты
- ООП Магия
- Практика
- Практика: классы как набор методов
- Примеры решения задач
- Задача
- Задача
- Задача
- Задачи для решения
- Работа с переменными
- Работа со строками
- Обращение к символам строки
- Практика
- Работа с присваиванием и декрементами
- Минипроекты PHP для новичков
- Учебник PHP
- Практика
- Важное
- Регулярки
- Работа с htaccess
- Файлы, папки
- Сессии и куки
- Работа с БД
- Практика по работе с БД в PHP
- Практика
- Движок PHP
- Продвинутые БД
- Аутентификация
- Практика
- ООП и MVC
- Абстрактные классы и интерфейсы
- Трейты
- ООП Магия
- Практика
- Практика: классы как набор методов
- Задачи для решения
- Образец главной страницы:
- Образец страницы просмотра одной записи:
- Образец страницы добавления записи:
- Образец страницы редактирования записи:
- Образец главной страницы:
- Образец страницы с темой:
- Образец главной страницы:
- Образец страницы с результатом:
- Практика программирования на PHP
- PHP: 20+ практик, которым стоит следовать
- 1. Комментируйте свой код
- 2. Используйте стандарты оформления кода
- 3. Никогда не используйте короткие теги
- 4. Используйте осмысленные названия переменных и функций
- 5. Отступы и длина строк
- 6. Одинарные или двойные кавычки
- 7. Никогда не используйте функции внутри циклов
- 8. Используйте одинарные кавычки в индексах массивов
- 9. Лучший способ вывода строк
- 10. Включайте вывод ошибок (Error Reporting) в процессе разработки
- 11. Не забывайте о принципе DRY
- 12. Избегайте излишнюю вложенность
- 13. Никогда не кладите phpinfo() в корневую директорию
- 14. Сделайте документацию по PHP вашим лучшим другом
- 15. Время использовать IDE
- 16. Попробуйте PHP фреймворки
- 17. Запускайте PHP локально
- 18. ООП
- 19. Обновляйте PHP
- 20. Взаимодействуйте с другими разработчиками
- От автора перевода:
Задачи на основы языка PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Перед решением задач изучите теорию к данному уроку.
Примеры решения задач
Задача
Задача. Создайте переменную $var и присвойте ей значение ‘hello’. Обращаясь к отдельным символам этой строки выведите на экран символ ‘h’, символ ‘e’, символ ‘o’.
Задача
Задача. Напишите скрипт, который считает количество секунд в часе.
Если нам нужно получить количество секунд в сутках, то умножим еще и на 24 (так как в сутках 24 часа):
Задача
Задачи для решения
Работа с переменными
Создайте переменную $a и присвойте ей значение 3. Выведите значение этой переменной на экран.
Создайте переменные $a=10 и $b=2. Выведите на экран их сумму, разность, произведение и частное (результат деления).
Создайте переменные $c=15 и $d=2. Просуммируйте их, а результат присвойте переменной $result. Выведите на экран значение переменной $result.
Создайте переменные $a=10, $b=2 и $c=5. Выведите на экран их сумму.
Создайте переменные $a=17 и $b=10. Отнимите от $a переменную $b и результат присвойте переменной $c. Затем создайте переменную $d, присвойте ей значение 7. Сложите переменные $c и $d, а результат запишите в переменную $result. Выведите на экран значение переменной $result.
Работа со строками
Создайте переменную $text и присвойте ей значение ‘Привет, Мир!’. Выведите значение этой переменной на экран.
Создайте переменные $text1=’Привет, ‘ и $text2=’Мир!’. С помощью этих переменных и операции сложения строк выведите на экран фразу ‘Привет, Мир!’.
Создайте переменную $name и присвойте ей ваше имя. Выведите на экран фразу ‘Привет, %Имя%!’. Вместо %Имя% должно стоять ваше имя.
Создайте переменную $age и присвойте ей ваш возраст. Выведите на экран ‘Мне %Возраст% лет!’.
Обращение к символам строки
Создайте переменную $text и присвойте ей значение ‘abcde’. Обращаясь к отдельным символам этой строки выведите на экран символ ‘a’, символ ‘c’, символ ‘e’.
Дана произвольная строка, например, ‘abcde’. Поменяйте первую букву (то есть букву ‘a’) этой строки на ‘!’.
Создайте переменную $num и присвойте ей значение ‘12345’. Найдите сумму цифр этого числа.
Практика
Напишите скрипт, который считает количество секунд в часе, в сутках, в месяце.
Создайте переменную, присвойте ей число. Возведите это число в квадрат (это значит нужно умножить его само на себя). Выведите его на экран.
Работа с присваиванием и декрементами
Переделайте этот код так, чтобы в нем использовалась операция .=. Количество строк кода при этом не должно измениться.
Переделайте этот код так, чтобы в нем использовались операции ++ и —. Количество строк кода при этом не должно измениться.
Минипроекты PHP для новичков
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Перед решением задач изучите теорию к данному уроку.
Задачи для решения
Над формой должны выводится сообщения, оставленные предыдущими посетителями сайта (видны всегда, отсортированы по убыванию даты, то есть в начале самые новые).
Все должно работать аналогично предыдущей задаче, но для сообщений нужно реализовать пагинацию, пусть по 5 сообщений на странице.
Реализуйте гостевую книгу, как показано в следующем образце:
Вы можете открыть этот пример в отдельной вкладке браузера.
Реализуйте гостевую книгу с пагинацией, как показано в следующем образце:
Вы можете открыть этот пример в отдельной вкладке браузера.
Реализуйте записную книгу, как показано ниже.
Образец главной страницы:
Вы можете открыть этот пример в отдельной вкладке браузера.
Образец страницы просмотра одной записи:
Вы можете открыть этот пример в отдельной вкладке браузера.
Образец страницы добавления записи:
Вы можете открыть этот пример в отдельной вкладке браузера.
Образец страницы редактирования записи:
Вы можете открыть этот пример в отдельной вкладке браузера.
Реализуйте органайзер, как показано в следующем образце:
Вы можете открыть этот пример в отдельной вкладке браузера.
Реализуйте форум, как показано ниже.
Образец главной страницы:
Вы можете открыть этот пример в отдельной вкладке браузера.
Образец страницы с темой:
Вы можете открыть этот пример в отдельной вкладке браузера.
Реализуйте опрос, как показано ниже. Результаты опроса должны храниться в базе данных.
Образец главной страницы:
Вы можете открыть этот пример в отдельной вкладке браузера.
Образец страницы с результатом:
Вы можете открыть этот пример в отдельной вкладке браузера.
Практика программирования на PHP
Если можешь сделать сортировку масива «пузырьком», то переходи дальше. Если нет — то разберись в простейшей работе с массивами и таки сделай эту сортировку.
Потом прочитай, что такое MVC и можешь все переделать под этот шаблон проектирования.
Знаю, что получу много минусов, но всё таки…
«Надо начинать с лёгкого проекта» — самый ужасный совет новичкам.
Решая легкие задачи мозг затачивается под лёгкие задачи. А как только программист после такого «лёгкого» обучения сталкивается с действительно сложной задачей вся структура мышления ломается и обучаться приходиться почти сначала.
Меня в своё время учили гуру — «Решай задачи, в которых сам чёрт ногу сломит, только так научишься». Проверил этот совет на себе и полностью с ним согласен. Только решение сложных задач действительно учит.
Выберите сложную задачу (написать движок для соц.сети, браузерную игру, портал и т.д.) и работайте над ней.
Задача для обучения должна решаться
Задача для развития должна быть сложнее текущего уровня
Сложность надо повышать постепенно, дабы приобретенные знания и опыт соединялись с имеющимися и формировалась картина а не бардак
PHP: 20+ практик, которым стоит следовать
Эта статья постарается научить вас нескольким лучшим практикам одного из самых популярных языков программирования в мире. Проблема в том, что многие разработчики, не только начинающие, но даже опытные PHP программисты, не уделяют им должного внимания.
Не так редки случаи, когда люди теряли высокооплачиваемую работу только потому, что не заостряли свое внимание на особенностях языка. Помните, что довольно сложно разобраться во всем за одну ночь.
1. Комментируйте свой код
Комментирование намного важнее, чем вы могли подумать. Очень грустно видеть начинающих разработчиков, да и закалённых программеров, которые не комментируют свой код просто потому что им лень.
Комментарии не только позволяют другим разработчикам понять ваш код, но и помогут разобраться вам самим, если придется вернуться к нему спустя какое-то время. Допустим, сегодня вы написали критически-важную функцию, и вы помните как она работает спустя день, два или даже неделю. Но, скорее всего, вы забудете о ней через пару месяцев.
Комментирование сделает ваш код понятным каждому (даже самим себе).
2. Используйте стандарты оформления кода
Стандартов оформления кода необходимость придерживаться (см. PSR-2, прим. пер.). Если разработчики в одном проекте будут использовать разные стандарты, репозиторий может превратиться в сущий ад.
Исходный код может стать абсолютно не поддерживаемым, если каждый, работая над ним, будет изобретать свой собственный стандарт оформления. Есть даже разработчики, которые не потрудились придерживаться хоть какого-нибудь стандарта, их код начал выглядеть как большая куча мусора и не более того.
Строгое следование определенному стандарту в оформлении кода даёт возможность другим программистам провести отладку вашего кода, и позволит вам самим присоединиться к сторонним проектам.
3. Никогда не используйте короткие теги
Это простое злоупотребление может стать причиной конфликтов с xml парсерами, а также может сделать ваш код несовместимым с будущими версиями PHP.
4. Используйте осмысленные названия переменных и функций
Если вы не применяете стандарты присвоения имен переменных, а используете общие и ничего не значащие имена, это может стать болезненным опытом для программистов, разбирающихся в вашем коде. Это очень плохая тенденция, которой ни в коем случае не стоит придерживаться.
5. Отступы и длина строк
Я уже говорил о важности следования стандарту оформления кода, но отдельно стоит сказать про отступы и длину строк.
6. Одинарные или двойные кавычки
Запомните разницу в их работе и используйте должным образом.
7. Никогда не используйте функции внутри циклов
8. Используйте одинарные кавычки в индексах массивов
Особенность PHP в том, что он воспринимает индексы без кавычек как константы, и, если эти константы не были объявлены ранее, они будут самоопределены (self-defined), что вызовет предупреждение (warning). Это не остановит выполнение кода, но ошибка есть ошибка.
9. Лучший способ вывода строк
Взгляните на кусок кода, представленный ниже, и попробуйте догадаться, какое выражение выполнится быстрее, а какое окажется медленнее.
Представьте, но последняя запись, та, которую реже всего можно встретить в коде, выигрывает в тестах производительности. Первая запись, очевидно, проигрывает, потому что функция «print» работает медленнее, чем «echo». Третья строка выигрывает у второй за счет того, что операция конкатенации обрабатывается быстрее, чем переменные внутри строки.
Малоизвестный четвертый вариант побеждает, потому что в нем нет операций работы со строками, а всего лишь список строк, разделенных запятыми.
10. Включайте вывод ошибок (Error Reporting) в процессе разработки
В PHP есть очень полезная функция, error_reporting(), которая может помочь найти различные проблемы в вашем приложении.
PHP поддерживает несколько уровней показа ошибок: E_NOTICE, E_WARNING, E_PARSE и тд., но вы должны использовать E_ALL для вывода всех типов уведомлений. Не забудьте выключить показ ошибок, когда закончите работу над кодом, чтобы пользователи не испугались невразумительных сообщений.
11. Не забывайте о принципе DRY
Это концепция применима не только к PHP, но и к любому другому языку программирования, таким как Java, C++ и тд. Простой пример кода позволит вам понять принцип DRY.
После применения принципа DRY, код будет выглядеть так:
12. Избегайте излишнюю вложенность
Используйте условные операторы таким образом, чтобы избежать множественного вложения. Это не только очень плохая практика, но и выставит ваше код в неудобном свете перед другими разработчиками.
13. Никогда не кладите phpinfo() в корневую директорию
Вы всего лишь размещаете файл на вашем сервере и получаете исчерпывающую информацию. Но множество разработчиков допускают ошибку, помещая файл в корневую директорию, т.к. это может открыть множество лазеек для хакеров.
Лучшим вариантом будет удалить файл, как только вы закончите с ним. Не так уж и страшно потратить пару секунд, если он понадобится вам снова.
14. Сделайте документацию по PHP вашим лучшим другом
У них есть новый дизайн (в бэта версии), если хотите. Другой полезной чертой документации PHP являются крайне полезные комментарии.
15. Время использовать IDE
IDE расшифровывается как Integrated Development Environment (интегрированная среда разработки). Она может существенно облегчить процесс разработки. IDE обладает такими крутыми штуками как: Подсветка синтаксиса, Автодополнение кода, Навигация, Отладка и др., что сделает вас намного продуктивнее и поможет вам писать хороший код с минимумом ошибок.
Вот несколько IDE для PHP: NetBeans, phpDesigner, phpStormи т.д. Выбери то, что больше понравится.
16. Попробуйте PHP фреймворки
Если вы изучили основы PHP, значит самое время перейти к фреймворкам. Их для PHP целые десятки, большинство из них основано на модели MVC (Model-View-Controller).
Из них вы подчерпнете много новых интересных вещей для изучения. CakePHP, CodeIgniter, Zend, Symphony позволят вам создать потрясающие приложения на PHP.
17. Запускайте PHP локально
Если вы работаете над PHP приложением, то вам хотелось бы вести весь процесс разработки на своем компьютере, без подключения к удаленному серверу.
Для этого вам нужны лишь веб-сервер Apache и PHP. Если появится необходимость в базе данных, воспользуйтесь MySQL.
Конечно, вы можете установить их раздельно, но лучше будет воспользоваться готовым решением: XAMPP, WAMP, MAMP. Они очень просты в настройке и позволят развернуть локальный сервер за считанные минуты.
18. ООП
Концепция объектно-ориентированного программирования впервые была представлена в PHP 4, но полноценная его поддержка появилась в PHP 5.
Но сейчас самое время перейти к объектно-ориентированному программированию, поскольку оно обеспечивает более высокий уровень гибкости и может значительно сократить размер исходного кода. Ваш код станет выглядеть намного более организованным.
19. Обновляйте PHP
Это очевидный пункт, но множество программистов неохотно берутся за обновление. Вместе с новой версией мы можете получить улучшение производительности и новые возможности. Нет абсолютно ни единой причины, пропускать обновления.
Эти новые возможности могут сделать вашу программистскую жизнь намного интереснее и проще. И не стоит забывать, что в новых версиях появляются исправления багов и улучшения, связанные с безопасностью.
20. Взаимодействуйте с другими разработчиками
Но если вы будете думать также, то перекроете себе путь в мир изучения новых замечательных технологий.
Спрашивайте ваших друзей или опытных разработчиков на всевозможных форумах, таких как Stack Overflow, Dream In Code и т.п. В мире много людей, которые всегда готовы протянуть вам руку помощи.
От автора перевода:
Пост является переводом оригинальной статьи Aritra Roy (https://www.corephp.com/blog/php-best-practices-that-you-must-follow/), опубликованной в августе 2013, но до сих пор сохранившей актуальность.
Помогаю развивать интернет-проекты. Пишу про веб-разработку, маркетинг и дизайн.