Разработка сайтов

Я окончил математико-механический факультет. Во время учёбы мне везло с преподавателями программирования, которые меня познакомили с языками Pascal, С++, Visual С++, Java, С# .NET

Более 10 лет занимаюсь веб-программированием. В начале я писал на чистом PHP/MySQL. Затем стал использовать CMS Joomla. С 2012 года пользуюсь CMS 1C-Битрикс и WordPress

Читать далее «Разработка сайтов»

Установка Codeception на Windows

Процесс установки и написания первого теста описан на официальном сайте. Ещё есть очень хорошее видео на хабре. Но как-то у меня установка Codeception вызывала много вопросов. Поэтому ниже я опишу — как это сделать с помощью скачивания и выполнения phar-архива и выполнения команды bootstrap. А также кратко упомяну — как написать и запустить первый тест.

Читать далее «Установка Codeception на Windows»

Регулярные выражения PCRE в PHP. Шпаргалка c примерами

Для работы с регулярными выражениями PCRE удобно пользоваться сайтами для их проверки (например, regex101.com или regexr.com). А если вы выбрали в качестве IDE — Eclpse, то можно установить плагин RegEx Util.

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

Читать далее «Регулярные выражения PCRE в PHP. Шпаргалка c примерами»

установка и использование XDebug в ECLIPSE (PDT Eclipse или PHPEclipse)

Установка XDebug

  • Качаем нужный файл (соответствующий windows и версии php) c сайта http://xdebug.org/download.php
  • Помещаем его в папку php/ext/
  • Добавляем в php.ini
  • Проверить корректность установки можно с помощью ф-ии . Вы должны увидеть раздел XDebug.
  • См. так же: http://drupalcookbook.ru/recept/ustanovka-nastrojka-otladchika-xdebug

 Eclipse PDT

  • открыть Window>Preference>Php>PHP Executables>Add ввести рядом с Executable Path – путь до файла php.exe (с именем файла в конце его). Выбрать PHP Debugger XDebug. Ввести какое-нибудь имя (например, «php 5.3») и нажать OK.
  • открыть Window>Preference>Php>Debug и выбрать PHP Debugger XDebug.  нажать OK.
  • открыть Window>Preference>Php>Debug>Installed Debuggers и проверить, что порт Xdebug совпадает со значением в php.ini. Если нет — поменять где-нибудь.
  • открыть Window>Preference>Php>Debug>PHP Servers и проверить настройки.
  • Запускаем Debug с помощью Run>Debug As>PHP Web Page. (Если нет такого пункта, проверяем, что в Eclipse в данный момент выделена область редактирования нужного файла, а не какое-нибудь другое окошко.) При первом запуске он спросит Launch URL — Введите туда URL, который вы хотите тестировать (В Joomla, скорее всего, он не совпадёт с путём до php файла, который Вам предложат. Проще всего для этого войти в браузер, открыть там нужную страницу и скопировать её сюда).
    • При последующих запусках спрашивать уже не будет. Чтобы поменять — нужно войти в Run>Debug>Debug Configuration>Php Web Page> [найдите нужную конфигурацию,, которая была автоматически создана при первом запуске]> и поменяйте значение URL на нужное
    • По умолчанию будет открываться страница во встроенном браузере. Поменять это можно в Window>Preference>General>Web Browser
    • Когда откроется страница во встроенном (или каком-либо другом) браузере обратите внимание на конструкцию вроде следующей:

      в URL адресе. Вы можете открыть любой браузер и добавить её к URL (в тот момент, когда запущен Debug) и — ура!
    • Вы можете переключиться в другую перспективу PHP Debug через Windows>Open Perspective>PHP Debug. В этой перспективе вы имеете больше возможностей для Debug`а.
    • Вы можете настроить автоматическое переключение перспективы на PHP после остановки Debug  (в Window>Preference>Php>Debug>Workbench Options)

PhpEclipse

  • Для начала переключитесь в перспективу Debug (Windows>Open Perspective>Debug) , после чего добавьте в тестируемый файл breakpoint
  • открыть Window>Preference>PhpEclipse>XDebug ввести рядом с Php Interpreter – путь до файла php.exe (с именем файла в конце его)
  • Debug>Debug configuration… Создаём новую конфигурацию дважды щёлкнув на XDebug Remote Script
  • Вводим имя нашего проекта и любое название в Ide Identification String (рекомендуется использовать короткое и запоминающееся название)
  • Перейти ко вкладке Pathmap. Она определяет как Eclipse трансформирует локальные пути к удалённым путям. Нажмите на кнопку New. И добавьте туда Local path – путь до корня проекта на машине, на которой запущен Eclipse; Remote Path – путь до корня проекта на Web-сервере. (Если они находятся на одной и той же машине, то пути совпадут)
  • Нажать на кнопку Debug
  • Запустить в браузере тестируемую страницу с припиской ?XDEBUG_SESSION_START=[Ide Identification String]

Ссылка: http://www.phpeclipse.com/wiki/Howto/XDebugAndPHPEclipse 

Предупреждение PHP «Deprecated: Function eregi() is deprecated in»

Это связано с использованием PHP версии 5.3 и выше. Начиная с этой версии функция eregi() и некоторые другие объявлены как НЕИСПОЛЬЗУЕМАЯ (DEPRECATED).

Вместо неё нужно использовать preg_match() c модификатором ‘ i ‘;

Например такая ошибка в Joomla 1.0 показывается в файле \modules\mod_mainmenu.php :

Нужно заменить все ereg() на preg_match() c модификатором ‘ i ‘.

Но таких мест в Joomla 1.0 много. И придумать лёгкую замену не получается. Поэтому я просто перед всеми ereg решил вставить @. Для этого заменил все вхождения » ereg» на   » @ ereg» (обращайте внимание на пробелы) и «!ereg» на «@ !ereg».

 

Предупреждение «Deprecated: Assigning the return value of new by reference is deprecated in»

Это связано с использованием PHP 5.3. Подробнее: http://php.su/php/?migration53

Можно либо

1) перейти на более старую версию PHP

2) отключить показ DEPRECATE ошибок

Для этого в  php.ini установить

или в PHP файле задать

 

Можно с помощью функции phpinfo() проверить какое в тот или иной момент установлен уровень error_reporting. Он показывается там числовым значением. 32767. Если не работает — проверьте наличае других вызовов функции error_reporing

 

3) немножко поредактировать код.

Большинство DEPRECATED в коде Joomla 1.0 и разных модулей было связано именно с использованием & перед new. Например:

Нужно просто удалить &.

Однако таких мест много. Но, если мы используем Eclipse, то просто заменить все вхождения «& new» на «new» во всех файлах. Для этого в меню выбираем Search>Search. Далее выбираем FileSearch, в поле containing text вводим «& new», нажимаем на кнопку Replace. Через некоторое время появится окошко Replace Text Matches. В нём в поле With вводим » new».  Если не сработало (у меня почему-то так произошло) обновляем весь проект (устанавливаем курсор на папкук проекта и нажимаем F5) и повторям замену.

Возможны и исключения. Например, \modules\exmenu\loader\menu.menuloader.class.php on line 286. Если там удалить &, то меню работпет некорректно.

Ошибка PHP: allowed memory size of 67108864 bytes exhausted (tried to allocate 16000 bytes)

PHP Выдал ошибку Fatal error: allowed memory size of 67108864 bytes exhausted (tried to allocate 16000 bytes). Ошибка возникала при изменении размера изображения с помощью функции imagecreatefromjpeg.

Исправить её можно путём добавления в php.ini файл (или, если у вас нет доступа к этому файлу, в файл .htaccess) строчку:

php_value memory_limit    512M.   

Читать далее «Ошибка PHP: allowed memory size of 67108864 bytes exhausted (tried to allocate 16000 bytes)»

if c Двоеточием, «endif;» — странные конструкции

В шаблоне JA-Purity, который входит в состав Joomla 1.5, можно найти конструкции вида

Это — альтернативный синтаксис PHP для файлов отображений