Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Перейти на сайт->

Бесплатный Курс "Практика HTML5 и CSS3"

Освойте бесплатно пошаговый видеокурс

по основам адаптивной верстки

на HTML5 и CSS3 с полного нуля.

Начать->

Фреймворк Bootstrap: быстрая адаптивная вёрстка

Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

Верстайте на заказ и получайте деньги.

Получить в подарок->

Бесплатный курс "Сайт на WordPress"

Хотите освоить CMS WordPress?

Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Получить в подарок->

*Наведите курсор мыши для приостановки прокрутки.


20 способов изучить PHP и спасти котят

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

Окей, пусть в шутку, но давайте это будет то, от чего мы отталкиваемся.

Начало работы с PHP может быть непростым опытом. Учитывая это, 20 хороших советов научат вас тому, как следовать лучшим практикам и сохранять жизни... жизни котят.


0. Пишите код так часто, как только можете.

Вы изучали в школе иностранный язык? Учили все части речи, глаголы и то, как их спрягать, постоянно слушая при этом речь учителя, построенную из простейших фраз и конструкций?

Много ли знаний, полученных в то время, вы действительно используете?

"Частое программирование с конкретной целью приведет к прочному усвоению знаний".

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

Хостинг

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

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

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

Поэтому не волнуйтесь, если вы "не знаете всего, что нужно" до начала реализации проекта. Когда вы определились с проектом, у вас есть весомая причина научиться всему, что нужно и реализовать его на практике. Частое программирование с конкретной целью приведет к прочному усвоению знаний.


1. Ознакомьтесь с документацией по PHP

Каждый список полезных советов почему-то содержит этот пункт. И точно не зря.

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

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

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

Возможно, одно из полезных знаний о руководстве - это то, что большинство функций можно найти, используя шаблон http://php.net/function-name в адресной строке. Например, для поиска функции strpos() используйте адрес http://php.net/strpos, а для array_key_exists() - http://php.net/array-key-exists. Обратите внимание на отсутствие скобок в адресе и изменение нижнего подчеркивания на символ дефиса.


1а. Читайте комментарии!

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

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


2. Воспользуйтесь преимуществами огромного сообщества PHP

В дополнение к руководству PHP, есть еще много замечательных сообществ разработчиков по всему интернету. Среди моих любимых: StackOverflow.com и форум W3Schools.com.

Кроме того, Twitter является на удивление отличным местом для размещения вопросов о PHP. Если вы проставляете для твита тэг "PHP", то, скорее всего, кто-то в сообществе заметит это и протянет вам руку помощи.

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


3. Не откладывайте хорошие практики на потом

В процессе обучения вы наверняка услышите про полезные привычки и стандарты кодирования, вроде подготовленных выражений и стандартов от PEAR. Не откладывайте изучение этих моментов "на потом" просто из-за того, что это кажется сложным.

"Если что-то является хорошей практикой, то это не потому что мы (другие PHP-программисты) собрались вместе и сказали: "А как бы нам усложнить жизнь новичкам?"

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

Время, которое вы потратите на изучение mysql_query() сопоставимо со временем на изучение PDO или MySQLi. Поэтому, если вы начнете сразу со второго варианта, то можете быть уверены, что вы начинаете с фундаментальных основ работы с базой данных и, в конечном счете, тратите на это меньше усилий и времени.


4. Не откладывайте хорошие практики на потом!

Я просто хотел убедиться, что вы обратили на это внимание.

"Серьезно, ребят. Не откладывайте в долгий ящик. Каждый раз, когда вы нарушаете лучшие практики из-за того, что они кажутся "слишком сложными", компания BP топит в сырой нефти очередного пушистого котенка."

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


5. Сделайте код самодокументируемым

На ранних стадиях, конечно, может быть заманчиво "поиграться" с именами переменных и фукнций. Может быть, вы читали статьи о производительности или видели фрагмент кода, который выполняет тонну работы всего в двух строках кода (но ооооочень длинных:)), или вы хотите создать свой собственный "фирменный стиль" кодирования?

Хостинг

"Если вы хотите выжить из имен переменных все символы для сокращения общего времени работы скрипта на 0.2 мс., то, скорее всего, столкнетесь с большими проблемами."

Каково бы ни было искушение, нужно устоять любой ценой.

Рассмотрим следующий фрагмент кода:


<?php
 $a = b('jason.lengstorf@copterlabs.com');
 $c = explode('@', $a);
 $d = $c[1];
 echo 'The email address ', $a, ' belongs to the domain ', $d, '.';
 function b($e) { return htmlentities($e, ENT_QUOTES); }
?>

Вы понимаете сходу, что здесь происходит?

Конечно, вы разберетесь с тем, как это работает, но зачем заставлять других людей, изучающих ваш код, тратить лишнюю минуту на то, чтобы понять, что же содержит в себе переменная с "говорящим" именем "c"?

Давайте возьмем этот код и сделаем его самодокументируемым:


<?php
 $email = sanitize_string('jason.lengstorf@copterlabs.com');
 $email_pieces = explode('@', $email);
 $domain = $email_pieces[1];
 echo 'The email address ', $email, ' belongs to the domain ', $domain, '.';
 function sanitize_string($string) { return htmlentities($string, ENT_QUOTES); }
?>

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

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


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

Комментарии не являются отличительной чертой новичков. Скорее наоборот, изучая большой объем чужого кода, я прихожу к мысли, что комментарии - это признак именно компетентного веб-программиста.

Если ваш код самодокументируемый, то вам не понадобится много комментариев. Однако, какими бы очевидными и понятными ни были имена ваших функций и переменных, всегда найдутся некоторые "белые пятна", когда совершенное действие на совсем очевидно.

"Комментарии - это признак компетентного веб-программиста."

Когда это происходит, комментируйте код. "Будущий Вы" скажем "Нынешнему Вам" огромное спасибо, когда придет время модифицировать скрипт.

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

Давайте посмотрим:


$pieces = explode('.', $image_name);
$extension = array_pop($pieces);

Что здесь происходит? Вам пришлось остановиться и подумать над кодом? Вы все еще не уверены относительно того, что находится в переменной $extension?

Посмотрите на сниппет ниже снова, всего лишь с одним кратким комментарием:


// Получаем расширения файлов изображений
$pieces = explode('.', $image_name);
$extension = array_pop($pieces);

Теперь, даже если вы не знаете, как именно работает какой-то код, вы, по крайней мере, будет знать, что в переменной $extension находится расширение изображения. Если это поможет "Будущему вам", либо сохранит несколько секунд времени другому разработчику, то есть смысл потратить 7 секунд для того, чтобы добавить комментарий.

Как и всегда, ключевым моментом является умеренность.

Слишком малое количество комментариев - и вы рискуете оставить другого разработчика (и "Будущего вас") озадаченным по поводу тех или иных фрагментов кода. Это может привести даже к случайному нарушению кода, т.к. если нет объяснений, то код может показаться глупым или избыточным.

"Умеренность - ключ ко всему."

Слишком большой объем комментариев - и ваш код становится трудно "просканировать", что тоже очень мешает работе.


7. Изучите Docblock и используйте его

Docblock - это стандарт комментирования (подробнее здесь).

У меня есть несколько доводов в пользу применения этого стандарта:

1. Он заставляет нас думать о том, "что" и "почему" для каждого файла, функции, метода, и т.д.

2. Он дает ясные описания ожидаемых параметров и возвращаемых значений для функций / методов.

3. Он дает краткое описание того, что делает тот или иной код.

4. В сочетании со средой разработки (IDE), поддерживающей Dockblock, мы имеем подсказки для кода (которые позволяют нам видеть описания, ожидаемые параметры и возвращаемые значения для функций и методов, которые мы используем).

Этот момент можно назвать ограничением для "новичков высокого уровня", но я отношу его к лучшим практикам, которые нужно освоить как можно скорее.

Не стесняйтесь пропустить этот этап, но помните о котятах.

Docblock показывает свою универсальность, когда используется для документирования классов:


/**
 * Простой класс для подсчета суммы или разности переменной $_foo и некоторого значения
 *
 * @author Jason Lengstorf <jason.lengstorf@copterlabs.com>
 * @copyright 2011 Copter Labs
 * @license http://www.opensource.org/licenses/mit-license.html
*/
class CopterLabs_Test
{
 /**
  * Значение, используемое для сложения и вычитания
  * @var int
 */
 private $_foo = 0;
 /**
  * Прибавляет значение к $_foo и возвращает сумму
  * @param int $add_me Значение, прибавляемое к $_foo
  * @return int Сумма $_foo и $add_me
*/
public function add_to_foo( $add_me=0 )
{
  return $this->_foo += $add_me;
}
 /**
  * Вычитает значение из $_foo и возвращаеть разность
  * @param int $subtract_me Значение, вычитаемое из $_foo
  * @return int Разность $_foo и $subtract_me
*/
public function subtract_from_foo( $subtract_me=0 )
{
  return $this->_foo -= $subtract_me;
}
}

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

Вышеприведенный Docblock при использовании в Netbeans даст нам такие подсказки для кода:



8. Не будьте настолько суровым кодером, чтобы отказываться от IDE

Если вы еще не знаете, то есть такое поверье: жесткие кодеры, думающие как настоящие программисты, не используют IDE.

Теперь смотрите: если вы хотите произвести впечатление на людей, то лучше научитесь жонглировать.

Отказ использовать все, кроме Emacs в командной строке для написания сценариев, не приведет к тому, что на вас будут вешаться девушки или вы сразу получите статус крутого хакера, однако, это будет поводом для ваших коллег повесить вам на лоб предупреждение о том, что вы "Странный парень".

Не будьте "Странным парнем".

"Нет ничего плохого в том, чтобы использовать софт, который дает подсветку синтаксиса на лету, проверку ошибок и подсказки по коду".

Насколько мощную IDE использовать - полностью зависит от вас. Лично мне очень нравится Netbeans. Я слышал тонны похвал в адрес Coda для Mac (хотя это не совсем IDE), а сам ранее использовал Eclipse (до переезда на Netbeans).

Независимо от того, какую IDE вы используете, вы увидите увеличение скорости работы и снижение количества мелких ошибок. Позже, когда ваши библиотеки кода пополнятся, вы будете иметь подсказки по коду для всех своих приложений (потому что вы используете Docblock, верно? Верно?!)

Не думайте, что IDE - это не круто - неважно, что вам говорит "Странный парень".


9. Группируйте повторяющийся код в функции

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

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

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

Рассмотрим следующий пример:


$unclean1 = '<a href="javascript:alert(\'Holy Crap!\');">Click Me!</a>';
$detagged1 = strip_tags($unclean1);
$deslashed1 = stripslashes($detagged1);
$clean1 = htmlentities($deslashed1, ENT_QUOTES, 'UTF-8');
$unclean2 = "Let's call Bjorn!";
$detagged2 = strip_tags($unclean2);
$deslashed2 = stripslashes($detagged2);
$clean2 = htmlentities($deslashed2, ENT_QUOTES, 'UTF-8');
echo $clean1, "<br />", $clean2;

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

Это тот случай, когда использование фукнции гораздо желательнее:


$unclean1 = '<a href="javascript:alert(\'Holy Crap!\');">Click Me!</a>'; $unclean2 = "Let's call Bjorn!";
$clean1 = sanitize_input($unclean1);
$clean2 = sanitize_input($unclean2);
echo $clean1, "<br />", $clean2;
function sanitize_input( $input )
{
  $detagged = strip_tags($input);
  $deslashed = stripslashes($detagged);
  return htmlentities($deslashed, ENT_QUOTES, 'UTF-8');
}

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


10. Группируйте сходные фукнции в классы

Знакомство с ООП (объектно-ориентированное программирование) - еще один момент, который можно отнести к категории "освоить как можно раньше".

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

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


11. Используйте константы, а не глобальные переменные.

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

Я хранил неизменные данные (вроде названия сайта и максимальной ширины картинки) а также учетные данные для подключения к базе данных в переменных, что приводило к тому, что я вынужден был использовать массив $GLOBALS для доступа к нужной информации.

Потом я осознал, что PHP позволяет определять константы, используя функцию define().

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

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


<?php
define('FOO', 'значение константы');
$bar = 'значение глобальной переменной';
echo baz();
function baz()
{
   $constant = ' Константа: ' . FOO;
   $global = 'Глобальная переменная: ' . $GLOBALS['bar'];
   return $constant . "<br />\n" . $global;
}
?>


12. Не бойтесь использовать Includes

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

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

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

Например, на сайте с множеством страниц, типичный шаблон может иметь вид, вроде:


<?php
// Данные, идентичные для всего приложения и соеднинение с базой
require_once 'constants.inc.php';
require_once 'database.inc.php';
// Сервисные функции
require_once 'utilities.inc.php';
// Разметка хэдера
require_once 'header.inc.php';
/* * Код, разный для разных страниц, идет здесь */
// Разметка футера
require_once 'footer.inc.php';
?>


13. Не сходите с ума из-за производительности

Это серьзный камень преткновения для некоторых разработчиков, что не есть хорошо. Есть очень тонкая грань между написанием эффективного кода и пустой тратой времени на попытки снизить время выполнения скрипта на 5 мс.

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

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

Никто не сможет заметить разницы при загрузке страницы за 25 или за 40 мс. Убедитесь, что это не 700 мс. и занимайтесь более важными вещами.


14. Не "жените" HTML на своих скриптах.

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

Рассмотрим следующий пример:


echo '<div class="example-div"><p>Здесь идет контент.</p></div>';

Действительно ли необходимо оборачивать параграф тэгом div? Можно ли изменить код так, чтобы он включал в себя только тэги параграфов для содержания текста? Давайте посмотрим на альтернативный вариант:


<div class="example-div">
   <?php echo '<p>Здесь идет контент.</p>'; ?>
</div>

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

В большинстве случаев вы можете отделить HTML от PHP, что сделает ваши скрипты более удобными для чтения и поддержки.


15. Попробуйте использовать хотя бы одну незнакомую концепцию в каждом новом проекте

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

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

Для вас это будет соревнованием, которе не даст заскучать от повторения одних и тех же действий и поспособствует вашем развитию, как веб-разработчика.


16. Не будьте слишком горды для того, чтобы меняться

Вы будете неправы. Причем часто. Но это не так уж плохо.

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

Здесь очень важно не привязываться к коду, который вы написали. Не думайте, что ваш код лучше просто потому, что его написали вы. Если вы наткнетесь на классное решение какой-то задачи, используйте его! Обратите внимание на то, как сделано у других, и что вы можете улучшить у себя.

"Никогда не позволяйте себе думать, что непрофессиональное решением является приемлемым, поскольку оно ваше. Это высокомерие (которое, как правило не приводит ни к чему хорошему)."


17. Проводите валидацию

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

Помните: Валидация (validation) - это совсем не то же самое, что очистка (sanitization).

"Валидация входящих данных - это проверка факта соответствия этих данных определенному формату, вроде проверки того, является ли введенное значение корректным email-адесом, либо содержит ли поле для ввода логина от 8 до 20 символов латинского алфавита или цифр."

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


18. Что не запрещено - разрешено?

Во многих ситуациях вам нужно избавиться от определенных символов, фрагментов текста, тэгов и т.п.

Типичным решением является создание так называемого "блэклиста": подборки запрещенных тэгов, символов и т.д.

"Если вы постоянно не пополняете и не мониторите свой черный список, то это чревато возникновением уязвимостей."

Это, однако, создает дополнительные трудности. Вам нужно быть умнее тех, кто хочет сделать что-то "противозаконное". К примеру, для отключения JavaScript в комментариях, вы могли бы запретить использование события OnClick и ему подобные, но что делать, если вы что-то упустили? Что делать, если какие-то новые события будут добавлены в спецификацию в будущем?

Если вы постоянно не пополняете и не мониторите свой черный список, то это чревато возникновением уязвимостей.

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

Например, в функции strip_tags(), вы можете явно указать, какие теги разрешены в строках:


strip_tags($string, '<em><strong><tr>');

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

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


19. Учитесь считать как компьютер

Вы ищете 20 способ? Помните, что в PHP почти всегда и везде отсчет идет с нуля, поэтому это и есть 20 способ. Вы заметите, что почти во всех языках дело обстоит точно так же, поэтому не позволяйте сбить себя с толку!


Подводя итог

Если вы новичок, советы, рассмотренные выше, помогут вам значительно продвинуться в сторону применения хороших практик в вашей деятельности.

Не пугайтесь, если все, что здесь написано для вас в диковинку: просто делайте за один раз один шаг (см. пункт 15).

Автор: Jason Lengstorf
Источник: net.tutsplus.com
Перевод: Дмитрий Науменко

P.S. Хотите двигаться дальше в освоении PHP? Обратите внимание на премиум-уроки по различным аспектам сайтостроения, включая программирование на PHP, а также на бесплатный курс по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить этот мощный язык веб-разработки:

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!


Смотрите также:

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

CodeIgniter: жив или мертв?

CodeIgniter: жив или мертв?

Функции обратного вызова, анонимные функции и механизм замыканий

Функции обратного вызова, анонимные функции и механизм замыканий

Применение функции к каждому элементу массива

Применение функции к каждому элементу массива

Слияние массивов. Преобразование массива в строку

Слияние массивов. Преобразование массива в строку

Деструктор и копирование объектов с помощью метода __clone()

Деструктор и копирование объектов с помощью метода __clone()

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

PHP: Удаление элементов массива

PHP: Удаление элементов массива

Ключевое слово final (завершенные классы и методы в PHP)

Ключевое слово final (завершенные классы и методы в PHP)

50 классных сервисов, программ и сайтов для веб-разработчиков

50 классных сервисов, программ и сайтов для веб-разработчиков

Наверх