Для этого тебе нужны мозги, желание, время, и инфа в смысле источник информации
Всякий кто сталкивается c PHP, в скором времени приходит
к выводу, что это не совсем удобный язык для изучения. Дело в том, что он
достаточно новый и динамично развивающийся, каждая последующая версия
буквально перечёркивает предыдущую. В таких условиях имеющаяся
документация быстро устаревает, а специалисты предпочитают не писать книг,
так как информация размещённая в книге начинает устаревать до выхода книги
в свет.
Почему же PHP так популярен и каким образом столько
человек разом обучилось PHP? Дело в том, что большинство PHP-программистов
не изучало язык с нуля, а изучало его либо уже зная С/С++, либо Perl. Perl
является C-подобным языком программирования (как и PHP), а является
предшественником PHP, можно сказать что PHP это Web-ориентированный Perl.
Поскольку, PHP просто логически следует из Perl и широкое распространение
получил именно из-за того, что программистам было легко переходить с Perl
на PHP (ну и с С на PHP, тоже).
Замечание
Язык Perl появился в 1986 году по воле системного
программиста Лари Уолла. Созданный первоначально как средство обработки
текстовых файлов, призванное облегчить жизнь системному администратору
UNIX, он превратился в настоящий язык программирования. Традиционные
области, в которых Perl применяется особенно часто и успешно, — создание
приложений CGI, системное администрирование UNIX, обработка текста.
Кроме того, свой вклад вносит предметная область —
программирование для сети Интернет. Для серьёзного понимания которого
желательно знание очень многих вещей (HTML, SQL, UNIX, прикладных
протоколов — хотя бы HTTP, стилей программирования на С, Perl,
Java).
Когда большинство PHP-программистов переходят в мир PHP с
багажом другого языка программирования (их стиль уже устоялся), спрос на
литературу, в которой бы обсуждались азы программирования не так велик.
Новичкам бывает трудно найти информацию об организации кода. Мы надеемся,
что эта статья поможет поставить свой собственный стиль, что в конечном
итоге может увеличить скорость разработки на 30% и помочь при работе в
команде, когда ваш код будет читаться другими программистами, а вам
соответственно придётся читать чужой код.
Расстановка фигурных скобок и отступы
Существует несколько стилей расстановки фигурных скобок,
все они диктуются существующими стилями в других C-подобных языках
программирования.
1) Рациональный стиль
Это один из наиболее распространенных стилей, так как им
пользовались Керниген (Kernighan) и Ричи (Ritchie), авторы языка C.
<?php
if($flag){
echo "Hello world!";
}
?>
Преимущество этого подхода заключается в экономии
вертикального пространства, жизненно важного при отладке большого блока
кода. Оборотной стороной такого подхода является то, что может оказаться
трудным найти символ {, спрятанный в конце строки. Этого стиля
придерживаются и Java-программисты, как-то приписывает Sun.
2) Стиль Алмена
Эрик Алемен (Eric Allman) написал утилиты BSD в этом
стиле, поэтому этот стиль часто называют "стиль BSD":
<?php
if($flag)
{
echo "Hello world!";
}
?>
Аргументом в поддержку такого стиля является тот факт,
что область видимости блочного оператора ясна и визуально ассоциируется с
управляющим оператором.
3) Стиль Whitesmith
Данный стиль предписывает использование следующей
расстановки фигурных скобок
<?php
if($flag)
{
echo "Hello world!";
}
?>
Этот стиль имеет преимущество в том, что скобки более
тесно ассоциируются с кодом, который они включают и разграничивают, однако
при визуальном просмотре текста отыскать скобки оказывается чуть более
сложно.
4) Стиль GNU
Программисты GNU фонда Free Software Foundation
используют следующий стиль расстановки фигурных скобок
<?php
if($flag)
{
echo "Hello world!";
}
?>
Внутри любых управляющих конструкций операторы следует
располагать с отступом на одинаковое число пробелов, например для
операторов if-then-else код должен выглядеть следующим образом:
<?php
$flag = true;
if($flag)
{
echo "Переменная равна true";
exit();
}
else
{
echo "Переменная равна false";
exit();
}
?>
Число может быть любым, обычно используют 2, 4 или 8
пробелов. Старайтесь придерживаться этого правила, некоторые программисты
приходят в бешенство когда это число не кратно 2 :) Наиболее оптимальным
является использование 2 пробелов, так как при их большем числе вложенные
блоки становятся "растянутыми" и их становится сложно воспринимать.
Пробелы вокруг символов
Бинарные операторы следует обрамлять пробелами:
<?php
// Неправильно
$a=$b+$c*$d;
// Правильно
$a = $b + $c * $d;
?>
Символ пробела ассоциируется с новым словом, поэтому
формула читается не как непонятный набор символов, а как нечто
осмысленное.
Комментарии
Расставляйте комментарии по принципу “чем больше, тем
лучше” — пройдёт некоторое время и вы забудете, что делал тот или иной
программный блок. Вообще принято комментировать код на английском языке
или не комментировать вообще, так как в русском дикое количество
кодировок, да и вообще так исторически сложилось. Плюйте на это, код вы
комментируете в первую очередь для себя, а не для других! А раз уж вы
делает это для себя делайте это в удобной для вас кодировке.
PHP собрал в себе практически все комментарии современных
языков программирования, наряду с однострочными комментариями в стиле
shell-скриптов (#)
<?php
# Программный модуль index.php
echo "Hello world!";
?>
и С++ (//)
<?php
// Программный модуль index.php
echo "Hello world!";
?>
можно использовать многострочный комментарий в стиле
C:
<?php
/* Это многострочный комментарий в стиле С
он охватывает несколько строк – не допускается
вложенных комментариев
*/
echo "Hello world!";
?>
К хорошему тону относится использование однострочных
комментариев для короткого комментария, а многострочного — для
комментария, охватывающего несколько строк. Не возбраняется использовать
однострочные комментарии для большого текста, особенно в начале файла или
важного блока кода
<?php
////////////////////////////////////////////////////////////////////////////////////////
// Гостевая книга
///////////////////////////////////////////////////////////////////////////////////////
?>
Как и при работе с отступами и фигурными скобками,
основным требованием является необходимость придерживаться одного стиля во
всех программных блоках.
При расстановке однострочных комментариев
возможно два варианта: непосредственно перед выполняемым оператором
<?php
// Вывод текстовой строки в окно браузера
echo "Hello world!";
?>
и после точки с запятой
<?php
echo "Hello world!"; // Вывод текстовой строки в окно браузера
?>
Лучше придерживаться первого правила, так как строка
получается длинной и плохо воспринимается читающим. Единственным
оправданием использования такого комментария является комментирование
закрывающейся скобки длинного программного блока, содержащего много
вложенных блоков.
<?php
if($tot)
{
while($position = next($tot))
{
/* Очень длинный код
содержащий много
вложенных блоков
...
*/
if($flag)
{
echo "Ошибка";
exit();
}
} // Конец while($position = next($tot))
}
?>
Имена переменных и функций
Существует несколько стилей названия переменных
$var_bell — стиль C: нижний регистр, знак подчёркивания.
$VarBell — стиль Pascal: каждая подстрока в названии
начинается с большой буквы.
$varBell — стиль Java: первая строка начинается с
маленькой буквы, все последующие с большой.
Не имеет значения, какой стиль будет вами выбран —
главное придерживаться в коде одного стиля.
Замечание
В программировании константы традиционно записываются в
верхнем регистре YANDEX_BOT. Если вы хотите, чтобы другие программисты
могли легко воспринимать ваш код, придерживайтесь этого правила.
При названии переменных и функций старайтесь давать им
осмысленные имена. Иногда ничего не приходит в голову, и появляется
назвать переменную как попало — остерегайтесь этого. В своё время было
потрачено не мало часов из-за неудачно названных переменных, иногда
отладить код удавалось лишь в том случае, если переменные были
переименованы подобающим образом.
Рассмотрим несколько примеров. Часто временные строки для
хранения SQL называют $query (запрос) — это очень удачное название,
ассоциирующееся именно с SQL-запросом. Обычно на этом всё и заканчивается.
При появлении второго запроса, вторая переменная получает имя $query1 —
это порочная практика. Обычно запросы в рамках одного скрипта отличаются
своим действием: один SQL-запрос может выполнять обновление (UPDATE),
другой выборку (SELECT), поэтому переменные лучше называть с указанием
действия оператора: $query_update и $query_select, соответственно.
Часто можно увидеть код
<?php
$query = "SELECT * FROM catalog";
$query1 = mysql_query($query);
while($result = mysql_fetch_array($query1))
{
/* Код обработки */
}
?>
Здесь дескриптор запроса, возвращаемый функцией
mysql_query() назван $query1, это здорово запутывает как разработчика, так
и читающего текст программы. Дескриптор не несёт физического смысла — это
лишь ключ к результату, поэтому его лучше называть сокращённым именем
таблицы
<?php
$query = "SELECT * FROM catalog";
$cat = mysql_query($query);
while($catalog = mysql_fetch_array($cat))
{
/* Код обработки */
}
?>