PHP is the most commonly used web development scripting language. Every month, a number of tools are created to make life of PHP developers much easier. Script debugging has always been a concern for developers, especially for beginners and intermediate level developers.

Before reading the full post, you should first understand the concept of debugging.

Debugging is a subject of removing bugs from the script to ensure correct execution. Debugging is always a time consuming task, as during dry run you have to go at every line of code. To reduce the time spent in debugging, various tools have been developed. PHP debugging has never been an easy subject.

In the competitive market there are numerous software available for debugging of PHP scripts. Selecting a debugging tool is not an easy task. To select a debugging tool, first you should consider the functionalities. PHP debugging tools are basically the apps developed to find bugs within the code. The significance of these tools becomes more evident when a developer is working on large projects containing thousands lines of code. Here, we have just compiled a list of the most popular PHP debugging tools to help developers to generate a code in a timely manner. Details are as follows:

  1. Xdebug:
  1. Netbeans:

Netbeans is another debugging tool which is originally written in Java. A significant advantage of netbeans is that its IDE can be extended by the third party.

Netbeans is a very useful tool for PHP development as well. Netbeans can be run on different compatible platforms like Linux, Microsoft Windows, Mac OS and Solaris.

Also, you may find a wider community over the internet which can help you in development. Latest version of Netbeans is Netbeans IDE 8.1. Netbeans is open source and has worldwide community of users.

NetBeans PHP editor is very useful as it facilitates developers in code generation. There are many benefits of using net beans. Semantic code highlighting, code formatting, popup documentation, marking of occurrences and exit point are few of them.

  1. Sublime:

Sublime is a very popular source code editor which supports many languages. Sublime is also an extendable resource. It can be downloaded from the official website of Sublime text.

Its interface and extraordinary features are the main reason behind its popularity. It has very good performance on cross platforms. It is very fasts in searching files, switching files, opening files and switching between different projects.

  1. PHPstorm:

PHPStorm is another popular cross platform IDE for PHP. Its editor has PHP, HTML and javascript debugging options. It supports all major versions of PHP including PHP7.

PHPstorm was written in Java. PHPstorm supports all features which are included in Webstorm. Preinstalled javascript plugins are also available in PHPstorm for example node.js. Latest stable release of PHPstorm is PHPstorm 10.0.

Benefits of testing and debugging with PHPstorm:

It is easy to configure debuggers like x debug and zend debugger to test local variables, arrays, complex objects. PHPUnit tests can be performed in it and can be executed from directory, class or file with code coverage. User can jump from execution stats to functions in PHP via PHPstorm.

  1. Zend studio:

Zend Studio is also a commercial IDE for PHP owned by the Zend technologies. It is based upon PHP development tools (PDT) plugin for Eclipse platform. It is a pre-integrated and tested application stack.

Being integrated with the Zend Server, it helps a lot the PHP developers to speed up detection analysis in the production environment. Moreover, it provides MVC view through which code navigation and integration with zend which auto generates code. It enables deployment with FTP, SSH and SFTP. Its stable version was released in April 2015.

  1. Kint:

Kint is a very powerful PHP debugging tool. Kint is also an open source platform. It is a very well known debugger. It is said to be a zero setup replacement. It presents enough information like variable name and other tailored alternatives.

Kint is a very friendly tool which presents variable content in readable way. It is similar to Krumo in a way that it provides alternative to var_dump(). It provides replacement for print_r() and debug_backtrace() as well. It helps presenting data in better way.

  1. Webgrind:

Webgrind is basically a profiling web frontend of Xdebug. It is compatible with all platforms and helps by implementing features of Kcachegrind. The installation is very quick. It is best for quick and messy optimizations. It is very simple and provides cross platform compatibility.

  1. Whoops:

Whoops is a library which helps in development and maintenance of projects. Through this library, you can easily deal with errors. It is considered as a flexible, straightforward toolset which helps in dealing with errors. It shows an error page.

Library main features include detailed error pages. It also supports Ajax and JSON requests. It provides compact, clean and tested code base environment. Whoops responds to the JSON request, if it is failed during an AJAX request.

  1. PHP_Dyn:

It is a debugging tool of PHP which is an extension of PHP. You can easily get trace of code scripts which do not need to be changed. This extension enables printing of HTTP request parameters. Also it enables the printing of function call and the return value.

The above 10 debugging tools of PHP are equally useful. However this list doesn’t determine their ranking among PHP experts. Nonetheless, these tools are being used by PHP experts all over the world.

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

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

Imanee

Пожалуйста, хватит писать свои функции для работы с графикой!

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

Чтобы окончательно убедить вас не писать что-то своё, приведем несколько примеров.

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

Echo Imanee::globAnimate("resources/*.jpg");

То же самое касается и установки на изображение своего копирайта:

$imanee->placeText("imanee test", 40, Imanee::IM_POS_MID_CENTER)->output();

Официальный GitHub репозиторий: Imanee

Сайт с документацией и котиком: Imanee.io

PHP Benchmark

Перестаньте писать свои решения с запоминанием таймстампов в переменные и сравнением, ваши проблемы решает PHP Benchmark - бесплатная библиотека с открытыми исходниками.

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

Подключив PHP Benchmark и прописав в нужных местах следующую строчку:

\PHPBenchmark\Monitor::instance()->snapshot("Plugins loaded");

можно получить детальный отчет по работе приложения.

Вот пример для популярной платформы WordPress:

Подробную документацию, как и исходники, вы можете найти на гитхабе: PHP-Benchmark

RegExp Builder

Являясь бесплатным портом известной JavaScript библиотеки, PHP RegExp Builder позволяет полностью забыть о регулярках, их синтаксисе и искусстве написания. С использованием этого инструмента валидацию, поиск и замену сложных по структуре данных - основные области применения регулярных выражений - стало делать ещё проще.

Пример создания регулярного выражения с RegExp Builder:

$regExp = $builder ->startOfInput() ->exactly(4)->digits() ->then("_") ->exactly(2)->digits() ->then("_") ->min(3)->max(10)->letters() ->then(".") ->anyOf(array("png", "jpg", "gif")) ->endOfInput() ->getRegExp();

Скачать библиотеку можно на GitHub: RegExp Builder

Там же доступна и документация: RegExp Builder Wiki

PHP FaceDetection

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

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

$face_detect->face_detect("sample-image3.jpg");

Mobile Detect

Mobile Detect - легковесный класс с открытым исходным кодом, предназначенный для определения модели мобильного устройства клиента. Для «детекта» он использует User-Agent в сочетании с HTTP заголовками и свою обширную базу данных - это делает количество ложных срабатываний минимальным.

Даже несмотря на то, что для адаптивного дизайна сегодня используются Media Queries, скрипт всё равно может быть полезен: например, вы можете отдавать мобильным пользователям более легковесные изображения, тем самым ускоряя загрузку сайта.

Простейший пример:

If ($detect->isMobile()) { // пользователь зашел с телефона! }

ABLincoln

ABLinkoln - написанная на PHP реализация фреймворка PlanOut от Facebook, предназначенного для A/B тестов - тестов, использующихся для оценки эффективности веб-страницы и повышения конверсии, или, другими словами, сплит-тестирования.

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

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

Use \Vimeo\ABLincoln\Experiments\SimpleExperiment; use \Vimeo\ABLincoln\Operators\Random as Random; class MyExperiment extends SimpleExperiment { public function assign($params, $inputs) { $params->button_color = new Random\UniformChoice(["choices" => ["#ff0000", "#00ff00"]], $inputs); $params->button_text = new Random\WeightedChoice([ "choices" => ["Join now!", "Sign up."], "weights" => ], $inputs); } }

Документация, исходники и примеры кода - на GitHub .

phpQuery

Задача спарсить некую информацию со стороннего сайта встает перед веб-разработчиком очень часто: таким образом можно заполнить контентом собственный сайт, динамически подгрузить какую-то информацию и многое другое.

mPDF

mPDF - одна из лучших библиотек для генерации документов в формате PDF. В отличие от своих конкурентов, mPDF в полной мере поддерживает русский язык, вставку картинок, форматирование и, самое главное, HTML и CSS.

Основанный на открытом движке инструмент очень прост в использовании: на вход вы подаете почти обычную веб-страницу - на выходе получаете полноценный PDF.

$html = "

Пример 1 Пример 2 Пример 3 Пример 4
Пример 5 Пример 6 Пример 7 mPDF
"; // Задаем формат, отступы и т.д $mpdf = new mPDF("utf-8", "A4", "8", "", 10, 10, 7, 7, 10, 10); // Не забываем про русский $mpdf->charset_in = "cp1251"; // Подключаем css $stylesheet = file_get_contents("style.css"); $mpdf->WriteHTML($stylesheet, 1); $mpdf->list_indent_first_level = 0; // Формируем pdf $mpdf->WriteHTML($html, 2); $mpdf->Output("mpdf.pdf", "I"); ?>

Более подробную документацию, пример кода и ссылку на скачивание вы найдете на официальном сайте:

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

Это расширение команды ASP.NET и Web Tools, которое является неофициальной площадкой для тестирования и обкатки функций. Само расширение развивается opensource-сообществом. Web Essentials предлагает огромное число новых возможностей для веб-разработчиков, такие как компиляторы LESS/Sass/CoffeeScript, дополнительные возможности работы с кодом JavaScript/CSS/HTML/JSON, валидаторы, генераторы спрайтов изображений и многое другое.

SideWaffle

Сайт: http://sidewaffle.com
Загрузить: SideWaffle в галерее VS

Очень вкусное дополнение для Visual Studio. Это отличный набор шаблонов, который содержит как шаблоны проектов, шаблоны элементов, так и сниппеты для широкого круга сценариев: от создания приложений Angular.js, проектов Nancy FX и до плагинов Browser Link, расширений Chrome и многого другого.

File Nesting

Загрузить: File Nesting в галерее VS

Это расширение позволит вам вручную вкладывать файлы друг в друга, создавая иерархии вложений в Solution Explorer. Кроме того, расширение имеет возможность создавать иерархии автоматически основываясь на соглашениях именования. Расширение прекрасно подходит для обработки *.min.js и других вариантов зависимых файлов.

JSON Schema Generator

Загрузить: JSON Schema Generator в галерее VS

Visual Studio 2013 будет поддерживать полный intellisense и подсказки для любого JSON-файла, который ассоциирован со схемой. Это расширение позволит вам выбрать JSON-файл в Solution Explorer и сгенерировать для него файл схемы, основанный на содержимом.

Загрузить: WebJobsVS в галерее VS

Великолепное расширение, которое позволит вам трансформировать ваш app.config или любой другой XML-файл, основанный на конфигурации сборок. Проще говоря, расширение упрощает сценарии XML-трансформаций, которые по умолчанию доступны только для файлов web.config.

Если вы работаете с Grunt, Gulp, NPM или Bower, то это расширение создано для вас. Оно позволяет легко запускать задачи Grunt/Gulp напрямую из Solution Explorer и обновлять компоненты Bower.

Mexedge Stylesheet Extension

Загрузить: Mexedge в галерее VS

Это прекрасное расширение, которое расширяет возможности Visual Studio по работе и отображению CSS-кода прямо в Solution Explorer. Это не только выглядит круто, но и предлагает очень удобный способ обзора блоков media queries, селекторов и наборов правил. Это must have расширение для каждого веб-разработчика!

PHP Tools for Visual Studio

Сайт: http://www.devsense.com/products/php-tools/
Загрузить: PHP Tools в галерее VS

Во моем интервью на Channel9 мы обсуждали это прекрасное расширение для PHP-разработки. Расширение привносит в Visual Studio PHP-intellisense, навигацию по коду и многое другое. Это must have расширение для PHP-разработчиков, которым хочется получить всю мощь Visual Studio.

Cobisi Routing Assistant

Сайт: http://cobisi.com/routing-assistant
Загрузить: Routing Assistant in the VS Gallery

Это прекрасное расширение для визуализации вашей таблицы маршрутов ASP.NET для определения того какие URL как соответствуют маршрутам. Расширение упрощает диагностику проблем маршрутизации и даже предлагает некоторые удобные возможности редактирования.

CssCop – FxCop for Stylesheets

Загрузить: CssCop in the VS Gallery

Если вы много работаете с CSS, тогда это расширение будет вам полезным. Оно выполняет CssLint внутри Visual Studio для предоставления вам сообщения об ошибках, которые помогут вам исправить любые нарушения CSS-правил.

Node.js Tools for Visual Studio

Загрузить: NTVS на CodePlex

NTVS – это открытый, бесплатный плагин, который трансформирует Visual Studio в полноценную среду разработки Node.js. И справляется с этим на отлично! Этот плагин позволит вам воспользоваться всей мощью Visual Studio для разработки Node.js-приложений.

  • Перевод

PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.

Тестирование

PHPUnit
PHPUnit является одним из семейства тестирующий фреймворков xUnit и упрощает написание тестов, так же как и их запуск и анализ результатов.

SimpleTest это аналог JUnit/PHPUnit. Поддерживает mock объекты и может быть использован для автоматизации регрессионного тестирования веб приложений. Это возможно при помощи скриптабельного HTTP клиента, парсящего страницы и симулирующего такие вещи, как переход по ссылкам и отправка форм.
vfsStream
vfsStream это обертка для потоков файловой, полезная при юнит тестировании для создания mock объектов файловой системы. Можно использовать совместно с любым тестирующим фреймворком, например SimpleTest или PHPUnit.

Непрерывная интеграция

phpUnderControl
phpUnderControl это аддон для системы автоматической сборки CruiseControl, который содержит некоторые из лучших средств разработки на PHP. Проект нацелен на то, чтобы первые шаги с PHP и CruiseControl были как можно проще. К phpUnderControl прилагается утилита для модификации существующей развернутой системы CruiseControl.
Xinc
Xinc это сервер непрерывной интеграции написанный на PHP 5. Имеется встроенная поддержка Subversion и Phing (то есть и PHPUnit), и может быть легко модифицирован для поддержки других систем контроля версий и билд систем.

Cheat Sheets

PHP Cheat Sheet от AddedBytes
Одностраничный cheat sheet, перечисляющий аргументы для функций форматирования дат, синтаксис регулярных выражений и распространенные функции.
PHP 5 Online Cheat Sheet
Приведение типов: Boolean, Integer, String, Array, Object/Class; Строки: функции, обработка; Массивы: функции, обработка; Классы: объявление, объявление методов, видимость; Дата/Время: функции, форматы; Предопределённые переменные: $_SERVER, $_FILES

Если Вы совершеннолетний, дарю вам бэкап моего сайта торч.ру - можете его скачать, восстановить тор4.ру на своем персональном компьютере с системой Windows и пользоваться в личных целях. Получится почти полностью функциональный сайт, работает все кроме регистрации, даже поиск и постинг сообщений))
Опыт вебмастера не так важен, как прямые руки, несколько часов свободного времени и это Руководство. Ну дня Вам полюбому хватит, зато не будете зависеть от обитателей и руководства этого сайта, нормальным людям там вообще нечего делать.
1. Бесплатно скачиваем с офсайта дистрибутив локального сервера Denwer — 3 размером 8.5 Мб и устанавливаем его на компьютер с настройками по умолчанию.
2. Еще вам нужен текстовый редактор, например бесплатный Notepad++, хотя и простой Notepad в принципе сгодится. Открываем в нем файл
C:\WebServers\usr\local\apache\conf\httpd.conf
закомментируем строчку 498:
# AddDefaultCharset windows-1251
и сохраняем файл.
3. Открываем файл
C:\WebServers\usr\local\mysql-5.5\my.ini
31 и 78 строчки (max_allowed_packet) заменяем на
max_allowed_packet = 16M
и сохраняем файл.
4. Скачиваем бэкап сайта торч.ру, например отсюда
https://drive.google.com/file/d/0B0e2b2UQtjG_UC1PLW1sMl9pWGc
или отсюда
https://yadi.sk/d/2rB6q6Six2fos
Бэкап весит 2 с лишним Гб, основной объем составляют файлы картинок jpg и без расширения, также есть php и js скрипты, файлы данных html и sql, и другие файлы. В принципе можно просмотреть все эти файлы в простом графическом или текстовом редакторе. Но чтобы восстановить сайт, нужно создать папку
C:\WebServers\home\tor4.eu
и распаковать бэкап в нее.
5. Открываем файл
C:\WebServers\home\tor4.eu\ru\phpBB\includes\utf\utf_tools.php
вписываем в 20 строчку:
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
и сохраняем файл.
6. Открываем файл
C:\WebServers\home\tor4.eu\ru\phpBB\config.php
и заменяем конфигурационные данные на следующие:
$dbhost = ‘localhost’;
$dbport = »;
$dbname = ‘komok_phpbb’;
$dbuser = ‘komok_phpbb’;
$dbpasswd = ‘abcddcba’;
7. Открываем файл
C:\WebServers\home\tor4.eu\ru\phpBB\store\bigdump.php
находим там строчку Database configuration и ниже ее заполняем:
$db_server = ‘localhost’;
$db_name = ‘komok_phpbb’;
$db_username = ‘komok_phpbb’;
$db_password = ‘abcddcba’;
8. Удаляем файл
C:\WebServers\home\tor4.eu\ru\phpBB\store\.htaccess
9. Открываем файл
C:\WebServers\home\tor4.eu\ru\.htaccess
удаляем все строчки, кроме последней
ErrorDocument 404 …
и сохраняем файл.
10. Кликаем на рабочем столе иконки Stop Denwer, потом Start Denwer.
11. Набираем в вашем браузере
http://localhost/denwer/Tools/addmuser/index.php
в появившиеся окошки вписываем
Имя…..: komok_phpbb
Логин..: komok_phpbb
Пароль: abcddcba
еще раз: abcddcba
пароль администратора не заполняем
и жмем кнопку «Создать».
12. Набираем в вашем браузере
http://ru.tor4.eu/phpBB/store/bigdump.php
и когда появится табличка с именами sql файлов, импортируем файл
backup_1462628366_b236e74704049a08.sql.gz
Начнет кружиться курсор загрузки и у вас есть пол часика попить чайку, это нормально. Если в процессе не будет ошибок, то после успешного завершения импорта sql файла скрипт известит вас об этом в красочной табличке.
13. Если же табличка не появится или в процессе импорта произойдет ошибка, то или вы неточно следовали инструкции, проверьте все, исправьте, потом остановите и снова запустите Денвер и повторите попытку импорта, или же это ошибка на стороне сервера.
Разбив дамп на 34 маленьких файла, я минимизировал вероятность ошибки. Можете попытаться импортировать все файлы, имена которых начинаются с backup_147. После импорта каждого файла должна появляться табличка. Затем зайдите в phpMyAdmin, набрав в браузере
http://localhost/Tools/phpMyAdmin
и объедините все таблицы phpbb_posts10, phpbb_posts11, … phpbb_posts39 в одну таблицу phpbb_posts, выполнив SQL запросы
INSERT IGNORE INTO phpbb_posts SELECT * FROM phpbb_posts10;

INSERT IGNORE INTO phpbb_posts SELECT * FROM phpbb_posts39;
Потом лишние таблицы можно удалить. Времени уходит куча, но в принципе это не сложно.
14. Набираем в вашем браузере
http://ru.tor4.eu/phpBB/
и видим замечательный когда-то в прошлом форум торч.ру на вашем компьютере.
15. Для того чтобы почитать закрытые разделы, нужно войти.
Дарю логин администратора сайта
имя пользователя: tapok
пароль: terpinkod
16. Можете тоже почувствовать себя немного администратором, поуправлять сайтом торч.ру через центр администрирования. А то сейчас только я и наркотварь можем это делать. Пользуйтесь моей добротой, наркотварь жаден, он вам копию не даст, он даже поменял форумный движок на платный, украв у меня сайт. Вы не хуже этого барана — он тупой, трусливый, завистливый, мстительный, властолюбивый клеветник. Это беззастенчивый вор, стукач, баландер, извращенец, масон и нарколыга телепат!

(с) komok, создатель торч.ру, 2016 год