Destio

PHP

Hello World в PHPUnit

Документация к PHPUnit предполагает очень серьезное использование с самого начала, да и предполагаемые методы установки могут напугать. Иногда лучше начинать работать с чего-то попроще, поэтому вот пример использования: Установить PHPUnit в Ubuntu несложно: sudo apt install phpunit Как мне кажется, для функций и методов в качестве Hello World часто используется умножение, вот и у нас […]

Читать дальше

Интерполяция переменных в PHP

Если строку обернуть в двойные кавычки “”, ПХП сам подставит значения встреченных переменных. В других языках этого, почему-то, обычно нет. Для этого надо указать переменную в строке просто так, или в фигурных скобках, что удобно для ассоциативных массивов и других сложных случаях. “текст $var”; “текст $var[3]”; “текст $foo[key]”; //ключ без кавычек, именно “текст {$foo[‘key’]}”; //а […]

Читать дальше

Скрыть категорию из “Свежие записи” в WordPress

Что скрыть категорию (рубрику) в виджете “Свежие записи”, надо добавить следующую функцию в functions.php (если тема не будет обновляться). function filterCategory($categories) { $categories[“cat”] = “-346”; return $categories; } add_filter(“widget_posts_args”, “filterCategory”); ID нужной категории можно найти в адресе страницы категории, будет в виде term.php?taxonomy=category&tag_ID=210. И ее с “-” впереди добавить. Наверное будет работать если сразу несколько, […]

Читать дальше

Критичные ошибки в PHP, fatal errors

PHP Fatal error: Cannot redeclare class Это значит данный класс уже объявлялся ранее. Самое простое это включать файлы с классами как include_once()/require_once(). Если не помогает, то можно проверять наличие класса: if (class_exists(“Database”) == false) { class Database { … } }

Читать дальше

,

PHP Parse error

Тут буду собирать php parsing errors. syntax error, unexpected '' PHP Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) Это значит PHP не нравится интерполировать элементы массива с ключами в одиночных кавычках. $foo = “upupu $issue[‘article’]” // плохо $foo = “upupu {$issue[‘article’]}” // хорошо

Читать дальше

,

Перенаправления в PHP

Всякие 301 редиректы лучше редиректить через .htaccess, оно так эффективнее. Но если надо перенаправить в PHP, то это вроде несложно: header(“Location: /foo/tuda/”); exit; Редиректы на 404 немного по-другому: header(“HTTP/1.1 404 Not Found”); include(“/404.php”); exit; exit нужен, без него выходит какое-то дерьмо.

Читать дальше

Строгий режим в PHP, PHP Notice

error_reporting(-1); позволяет PHP писать в лог о всех мелочах, наподобие аналогичным use warnings; или “use strict”;. Вот какие сообщения я уже получал: PHP Notice: Use of undefined constant Так ПХП требует кавычки вокруг ключей в ассоциативных массивах. Ключ это строка, а строки должны быть в кавычках: $_GET[n]; // плохо $_GET[“n”]; // хорошо PHP Notice: Undefined […]

Читать дальше

,

Простое ведение логов в PHP

Чтобы не сильно заморачиваясь вести логи каких-нибудь событий, часто хватает простого error_log(). И не нужно морочиться с записью в файлы и базы данных. Формат очень свободный, поэтому даты и переносов строк не будет, все самому. error_log(date(“c”) . ” cookies eggog\n”, 3, “/var/dataLogs/loginLog.log”); Файл создастся сам. Также можно писать и в общий error_log, с параметром 0: […]

Читать дальше

PDO prepated statements и кириллица

Как-то я бугнул и в названии колонки таблицы в MySQL (на самом деле Percona Server) появилась буква с. Буква кириллицей, из названия колонки расплодилась в соответствующие переменные PHP и параметры PDO (копипаста вперде!). Все участники спокойно пережевывали слово Сorrelation, пока execute() не порадовал меня ошибкой в параметре: PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter […]

Читать дальше

, ,

Включить HTML файл в HTML файл

Напрямую инклюдить HTML в HTML нельзя. Возможно в полуреализованных спецификациях уже есть различные наработки на эту тему, однако они с заморочками и результат скорее походит на страницу внутри страницы. А гладкое бесшовное включение, как какой-нибудь include или require нам в чистом HTML не получить. PHP include требует расширения .php и все равно чистый HTML инклюдить […]

Читать дальше

Записки постарше

Сервера DELL и HP: лучшие цены и широкий выбор