Где пишется php код
Перейти к содержимому

Где пишется php код

  • автор:

Выполнение PHP-кода в файлах JavaScript

В большинстве веб-приложений статические JavaScript-файлы устраивают разработчика на 100%. Однако же иногда бывает лучшим решением подключить PHP и сгенерировать содержимое JS-файла «на лету» (например, получить актуальные цены на продукты из БД и передать их JavaScript-программе для валидации формы заказа). Как же это сделать?

Способ первый: простой

Конечно же, самое простое решение состоит в том, чтобы включить код PHP внутрь секции вашего HTML-шаблона, поскольку есть шансы, что у него будет расширение .php.

  

Даже если расширение шаблона .htm или .html, то в большинстве случаев веб-сервер настроен так, чтобы понимать включения PHP-кода (если же нет, то в конце заметки есть простой пример как решить и эту проблему). Но что касается красоты, то этот вариант не самый изящный. Хорошо бы держать мух и котлеты раздельно.

Способ второй: красивый

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

AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js SetHandler application/x-httpd-php 
Pro et Contra: что нам это дает?
  • Вы можете включать PHP-код в файлы с расширением .js и он автоматически выполнится при клиентском обращении к JavaScript-файлу.
  • Вы можете держать такие «гибридные» скрипты в отдельной папке — достаточно в эту папку поместить описанный выше файл .htaccess.
  • Если вы хотите держать все JavaScript-файлы в одном месте (статические и гибридные), то можете зарегистрировать обработчик файлов с произвольным расширением, например, .js2 — достаточно немного модифицировать текст .htaccess.
  • Вы можете разделить статические HTML-страницы, шаблоны и JavaScript-файлы.
  • Теоретически это вызовет минимальную дополнительную нагрузку на работу сервера, но, учитывая вариации с отдельными папками или расширениями файлов, польза кажется превосходящей.
Дополнение

Для того, чтобы веб-сервер парсил файлы .htm и .html и выполнял включенный в них PHP-код, нужно добавить в .htaccess следующие строки:

AddType application/x-httpd-php .htm .html AddHandler x-httpd-php5 .htm .html SetHandler application/x-httpd-php 

Замечания, дополнения и обмен опытом приветствуются.

ВЫВОДЫ

Довольно странно, что небольшая заметка, которая фактически предлагает всего-навсего сниппет для быстрой реализации конкретной практической задачи вызвала такое бурное обсуждение, по большей части похожее на попытки блеснуть теорией. Знаменитое хабра-сообщество в данном случае самоотверженно линчевало те идеи, которые в заметке в принципе не затрагивались. Хотя надо отдать должное — несколько здоровых мыслей все таки есть. И кроме того — нет «никакой другой роскоши, кроме роскоши человеческого общения» (если верить Экзюпери)))).

Правила оформления PHP-кода

Отступы улучшают читабельность кода. Для их оформления используйте четыре пробела (но не знак табуляции).

2. Ключевые слова и константы true / false / null

Ключевые слова PHP, а также константы true , false и null следует писать в нижнем регистре.

  $b) < echo "a больше, чем b"; $equal = false; >elseif ($a == $b) < echo "a равен b"; $equal = true; >else < echo "a меньше, чем b"; $equal = false; >?> 
  $b) < ECHO "a больше, чем b"; $equal = False; >ELSEif ($a == $b) < Echo "a равен b"; $equal = TRUE; >ELSE < eCHO "a меньше, чем b"; $equal = falSE; >?> 

3. Определение пространств имён и блоков импорта

  1. Оставляйте одну пустую строку после определения пространства имён.
  2. Импорт пространств имён располагайте после определения пространства имён.
  3. Для каждого импорта пространства имён используйте отдельную строку со своим use .
  4. После блока импорта оставляйте одну пустую строку.

4. Методы и аргументы

  1. Пробел после имени метода.
    После имени метода не должно быть пробела. Хорошо
  // PHP-код ?> 
  // PHP-код ?> 
  // PHP-код ?> 
  // PHP-код ?> 

5. Вызовы методов и функций

  1. Пробелы.
    В коде вызова функций и методов не ставьте пробел:
    1. между именем функции или метода и открывающей круглой скобкой;
    2. после открывающей круглой скобки;
    3. перед закрывающей круглой скобкой.
     bar($arg1); Foo::bar($arg2, $arg3); ?> 
     bar ( $arg1 ); Foo::bar ( $arg2, $arg3); ?> 
     bar( $longArgument, $longerArgument, $muchLongerArgument ); ?> 
     bar( $longArgument, $longerArgument, $muchLongerArgument); ?> 

    6. Конструкции switch и case

    Конструкция switch должна выглядеть следующим образом. Выражение case смещено на один отступ (четыре пробела) от switch , а ключевое слово break (или иное слово, обозначающее выход из конструкции) располагается на том же уровне отступов, что и тело case . Если в непустом теле case умышленно не используется break , допишите комментарий в стиле // no break .

    7. Конструкции while и do while

    Конструкцию while следует оформлять следующим образом. Между while и ( ставится пробел. После ( и до ) пробелов не должно быть. ) и < разделяются пробелом. Тело конструкции отделяется одним отступом (четыре пробела). >пишется на новой строке после тела конструкции.

    Конструкция do while должна выглядеть так:

      while ($expr); ?> 
     while($expr); ?> 

    8. Конструкция for

    Пример оформления конструкции for представлен ниже. Между for и ( ставится пробел. После ; ставится пробел. ) и < разделяются пробелом. Тело конструкции отделяется одним отступом (четыре пробела). >пишется на новой строке после тела конструкции.

    9. Конструкция foreach

    Конструкция foreach должна выглядеть следующим образом. Между foreach и ( ставится пробел. Перед и после => ставится пробел. ) и < разделяются пробелом. Тело конструкции отделяется одним отступом (четыре пробела). >пишется на новой строке после тела конструкции.

      $value) < // тело foreach >?> 
     $value) < // тело foreach >?> 

    10. Конструкция try catch

    Оформляйте конструкцию try catch следующим образом. Между try и < ставится пробел. >и следующий за ним catch находятся на одной строке. Между catch и ( ставится пробел. ) и < разделяются пробелом. Тело try и тело catch отделяется одним отступом (четыре пробела). >пишется на новой строке после тела конструкции.

      catch (FirstExceptionType $e) < // тело catch >catch (OtherExceptionType $e) < // тело catch >?> 
      catch (FirstExceptionType $e) < // тело catch >catch (OtherExceptionType $e) < // тело catch >?> 

    Оформление кода PHP: стандарты и правила

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

    Восемь общих правил

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

    1. Придумывайте понятные и читаемые названия. Избегайте русских слов в латинской транскрипции. Только английские слова, обозначающие суть.
    2. Делайте отступы на каждом уровне и отделяйте логические блоки пустой строкой.
    3. Сокращайте вложенность кода и убирайте дублирование.
    4. Контролируйте длину. Рекомендуем для функций не более 20 строк, для метода не более 50 строк, для класса не более 300 строк, для файла — не более 1000 строк. Также ограничивайте длину одной строки до видимого значения на экране. Мягкое ограничение составляет 120 символов.
    5. Комментируйте и документируйте код. Это позволит зафиксировать всю необходимую информацию.
    6. Используйте рефакторинг. Следуйте принципу «рефакторинг — раньше и рефакторинг — чаще». Советуем также прочитать книгу «Рефакторинг. Улучшение проекта существующего кода» Мартина Фаулера.
    7. Работайте в системе контроля версий, например, Git. Это бесплатно и удобно. Обучиться работать в ней можно за 11 занятий на видеокурсе «Git. Быстрый старт».
    8. Изучайте Open Source код. Вы сможете увидеть, как пишут ведущие разработчики и воспользоваться лучшими практиками в программировании.

    Правила кода PHP

    На конец 2017 г. действуют стандарты PHP программирования: PSR-2 и PSR-1. Они устанавливают правила синтаксиса, именования, оформления. Весь код должен быть написан единообразно. Это касается пробелов, отступов, скобок, строк.

    Чтобы не запоминать все требования стандартов, можно работать в современной среде разработки — PhpStorm, NetBeans и подобных. Они позволяют автоматически форматировать текст в соответствии с правилами.

    Отступы

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

    Запомните: один отступ = четыре пробела.

    Выделяем отступами тело конструкции, тело метода, блоки импорта, аргументы и подобное.

    Правильно

    switch ($expr) < case 1: echo `One`; break; case 2: echo `Two`; break; > ?>

    Неправильно

     switch($expr) < case1: echo `One`; break; case 2: echo `Two`; break; > ?>

    Пробелы

    • между for ( foreach/ while / catch) и (
    • после ;
    • между ) и
    • перед =>
    • после =>
    • между try и
    • между > и catch
    1. После имени метода.
    2. В списке аргументов перед запятыми.
    3. Между ( и именем функции или метода.

    Пустая строка

    1. После каждого логического блока.
    2. После определения пространства имен.
    3. После блока импорта. Каждая строка блока должна начинаться с use.

    Правильно

    namespace Vendor\Package; use FooClass; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; // … ?>

    Неправильно

    namespace Vendor\Package; use FooClass; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; // … ?>

    Круглые скобки

    1. Не выносим на отдельные строки.
    2. Не ставим пробелы внутри: после ( и перед ).
    3. Ставим пробелы до скобок и после.
    4. Внутри перечисление отделяем пробелами.

    Фигурные скобки

    1. Открывающая фигурная скобка выносится на новую строку перед телом метода, для классов.
    2. Открывающая фигурная скобка не выносится на отдельную строку в конструкциях и замыканиях.
    3. Закрывающая скобка > в конструкциях, имени метода, определении метода, классах пишется с новой строки и отделяется одним отступом.

    Аргументы

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

    Правильно

    $arg1, $arg2, $arg3); ?>

    Неправильно

    $arg1 , $arg2,$arg3); ?>

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

    Правильно

    $foo ->bar( $firstArgument, $secondArgument, $thirdArgument ); ?>

    Неправильно

    $foo ->bar( $firstArgument, $secondArgument, $thirdArgument); ?>

    Конструкция switch case

    Конструкцию делим на три уровня: switch, case, echo/break. Каждый уровень начинается с отступа. Таким образом, наш код визуально выглядит состоящим из трех столбцов.

    Если в конструкции не используется break, поставьте // no break.

    Правильно

     switch ($expr) < case 0: echo `First case, with a break`; break; case 1: echo `Second case, with fall through`; // no break case 2: case 3: case 4: echo `Third case, return instead of break`; return; default: echo `Default case`; break; > ?>

    Неправильно

     switch ($expr) < case 0: echo `First case, with a break`; break; case 1: echo `Second case, with fall through`; case 2: case 3: case 4: echo `Third case, return instead of break`; return; default: echo `Default case`; break; > ?>

    Конструкция try catch

    Тело try и тело catch отделяются одним отступом. Пробелы нужно поставить:

    • между try и
    • между > и catch
    • между catch и (
    • между ) и

    Catch и скобку > ставим на одну строку.

    Правильно

    try < // тело try > catch (FirstExceptionType $i) < // тело catch > catch (OtherExceptionType $i) < // тело catch > ?>

    Неправильно

    try < // тело try > catch (FirstExceptionType $i) < // тело catch > catch (OtherExceptionType $i) < // тело catch > ?>

    Конструкция if, elseif, else

    Операторы и открывающую фигурную скобку пишем на одной строке. Закрывающую фигурную скобку оператора пишем на той же строке, что и оператор. Заключительную фигурную скобку пишем на отдельной строке. Оператор else if пишем как единое слово — elseif. Тело оператора отделяем отступом.

    Правильно

     if ($a == $b) < echo `A равно B`; > elseif ($a == $c) < echo `A равно C`; > else < echo `A ничему не равно`; > ?>

    Неправильно

     if ($a == $b) < echo `A равно B`; > else if ($a == $c) < echo `A равно C`; > else < echo `A ничему не равно`; > ?>

    Комментарии в коде

    Чистый код должен быть правильно закомментирован. К сожалению, встречаются две крайности: подробное комментирование каждой строки и полное отсутствие комментариев. И то, и другое мешает в работе. Избыточное комментирование снижает восприятие кода, отвлекает от понимания его сути. Писать очевидные вещи — тратить свое и чужое время. Иногда из-за слишком подробных комментариев объем кода увеличивается в несколько раз. Закончив с кодом, посмотрите критически. Очевидные и банальные комментарии удалите.

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

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

    Чек-лист «Инспекция кода»

    Предлагаем чек-лист для самостоятельной проверки чистоты кода. Если вы будете инспектировать чужой код, помните, что программист — творческая профессия. А творческие люди обычно тяжело воспринимают критику. Будьте лояльней.

    • Легко ли воспринимать код визуально?
    • Присутствуют ли комментарии? насколько они необходимы?
    • Соответствует ли код стандартам PSR-1 и PSR-2? Краткая выжимка стандартов приведена в разделе “Правила кода PHP”.
    • Используете ли вы систему документирования phpDoc или подобную?
    • Нужно ли делать перерыв в чтении, чтобы разобраться в написанном?
    • Проведен ли рефакторинг?
    • Есть ли дублирование в блоках, функциях и пр.?
    • Понятны ли названия переменных, имена методов и пр.?
    • Какова длина строк, методов, функций, классов, файла?
    • Вы искали ошибки и баги?
    • Как можно еще улучшить код?
    • Можно ли сделать его короче?
    • Можно ли сделать его эффективней?

    Желательно провести тестирование. Руководствуйтесь тремя принципами:

    1. Тесты должны быть полными.
    2. Тесты должны соответствовать установленным требованиям.
    3. Тесты должны проводиться на нужном уровне тестирования.

    Дополнительную информацию по тестированию вы найдете в материале «Тестирование кода для чайников».

    Заключение

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

    Старайтесь следовать принятым правилам, рекомендациям и стандартам. Думайте о тех, кто будет работать с ним после вас. Всегда пробуйте сделать код короче и эффективней. Напишите так, чтобы это понимал не только Бог.

    Что такое PHP и почему его все ненавидят

    Несмотря на то, что 83% сайтов в интернете работают на PHP.

    История языка

    Изначально PHP расшифровывался как Personal Home Page Tools — инструменты для создания персональных страниц. Дело в том, что раньше, чтобы сделать функциональный сайт, чаще всего использовали C, Perl и CGI-скрипты. Звучит сложно, на деле — тоже сложно. Единственным способом сделать что-то своё и не изучать при этом три тома по программированию был PHP.

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

    Например, можно сделать так:

    В результате на странице получится строчка: «Привет! А вы знаете, что этот код написан на PHP?»

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

    PHP — это просто

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

    Комментарии и точка с запятой. Комментарии можно ставить в любом месте — достаточно написать два слеша подряд. А точка с запятой ставится после каждой команды — точно так же, как в С, Pascal, JavaScript и ещё в сотнях других языков.

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

    Вывод на экран. В HTML-коде достаточно вставить команду echo, которая помещает текст в то место, откуда вызвали команду. Например, этот код покажет заголовок первого уровня с текстом «Заголовок, собранный на PHP»:

    И этот код сделает то же самое:

    «;
    $h1_text = «Заголовок, собранный на PHP»;
    echo $h1_text;
    echo «

    «; ?>

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

    Для чего нужен PHP

    Собирать страницы из модулей. Если помните, PHP-код можно встраивать в HTML-страницы, а можно сохранять как отдельные файлы. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно. Например, в одном мы пишем, как будет выглядеть шапка сайта, в другом — меню, третий файл будет отвечать за подвал, четвёртый — за блок с отзывами о товарах.

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

    < ? include("/includes/header.php«); ?>
    Тут можно вставить ссылку на модуль карточки товара
    или заполнить раздел информацией вручную.
    Но лучше модулем, как выше и ниже.
    footer.php«); ?>

    PHP возьмёт файл header.php, в котором мы написали, как должна выглядеть шапка сайта, и поставит её в начало страницы. То же самое сделает и с подвалом — файлом footer.php, и так будет на каждой странице товара. Получается, что нам не нужно писать один и тот же код шапки и подвала на каждой странице, достаточно сделать это в одном месте, а потом подключать одной строчкой.

    Создавать CMS и движки для сайтов. Такие модульные возможности PHP привели к тому, что большинство современных систем управления контентом на сайтах написаны на PHP. Смотрите сами:

    • WordPress;
    • Drupal;
    • Joomla;
    • MediaWiki — для создания вики-сайтов;
    • OpenCart — инструмент для интернет-магазинов;
    • phpMyAdmin — работа с базами данных.

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

    Работать с формами и данными на странице. HTML плохо умеет работать с формами и отправлять куда-то данные, которые вы вводите в поля регистрации. PHP справляется с этим гораздо лучше: вы говорите, из какого поля что нужно взять и по какому адресу отправить, а всё остальное интерпретатор делает за вас.

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

    Почему все ненавидят PHP

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

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

    Смешанный код. Писать в одном файле на PHP и HTML можно, если у вас всего одна форма обратной связи. Но когда весь сложный код на PHP расползается по всей странице, то это сильно мешает разобраться, что же там происходит на самом деле.

    Любые переменные в любом месте. Понадобилась новая переменная? Объявите её на любом участке кода и сразу берите в работу. Это удобно для первоначальной разработки, когда ты просто берёшь новую переменную там, где она понадобилась, и делаешь с ней что хочешь. Но когда проходит время или кто-то другой хочет разобраться в коде, то такой подход сильно затрудняет работу.

    Например, можно написать так:

    $a = 5+3;
    $b = «Строка»;
    … много строк кода …
    $a = 17 + $b;
    $b = 21;

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

    • нет нормальной многопоточности;
    • мало фреймворков;
    • странная работа с объектами и классами;
    • нет контроля и отладки ошибок.

    Стоит ли учить PHP?

    Зависит от задачи. Дело в том, что не менее 80% сайтов уже сейчас работают на PHP: это значит, что их нужно будет еще какое-то время поддерживать. Ещё лет 5–10 спрос на PHP точно будет.

    Однозначно стоит учить PHP, если хотите работать с Вордпрессом, Друпалом, Джумлой и другими известными системами управления сайтами. Они написаны на PHP, и все надстройки и дополнения — тоже. Хороший разработчик WordPress сейчас на вес золота.

    Будут ли веб-разработчики массово переходить на другие технологии — вопрос открытый. Сейчас, если вы покупаете виртуальный хостинг, вам сразу включают интерпретатор PHP, потому что все его используют. А другие технологии типа Python или Node.js — не включают, их нужно устанавливать отдельно.

    Но ведь и веб — это не навсегда. Ещё лет 20, и понятие веб-сайта может безнадёжно устареть, потому что люди будут в приложениях, соцсетях или ещё где похуже.

    Наверное, ответ на вопрос такой: если вам до 20 лет, то уже не надо учить PHP. А если ближе к 40–50 и вы хотите заниматься вебом — то определённо да.

    Что дальше

    В следующей серии попрактикуемся в PHP — напишем свой код для пользы дела или для развлечений.

    Получите ИТ-профессию

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *