Автоматическое форматирование кода в соответствии со стандартами PSR в PHPStorm

Пользователь Fabien Potencier (fabpot) разработал инструмент, который автоматически форматирует и перестраивает ваш код следуя стандартам PSR.

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

Continue reading

Добавление тега rel=canonical в OpenCart

OpenCart бесплатная система для создания интернет-магазинов. Насмотря на свою поулярность, некотоые функции отсутствуют. Это особенно заметно в SEO. OpenCart имеет инструмент добавления тега rel=”canonical” на страницы товаров, но нет возможности добавить данный тег на страницу категорий или же на не менее важную домашнюю страницу.

Если установить OpenCart без исправления этой проблемы, поиск Google по запросу site:yourdomain.com вернет миллионы вариантов для каждой категории, страницы будут дублироваться.

Continue reading

Разбор GET (Query) параметров на Dart

Потребовалось разобрать URL текущей страницы и получить значения GET-параметров по их имени. Набросал функцию:

String _getParameterByName(String name) {
  name.replaceAll('/[\[]/',"\\[").replaceAll('/[\]]/', "\\]");
  RegExp regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
  var results = regex.allMatches(window.location.toString());
  return results.length == 0 ? '' : Uri.decodeComponent(results.last.group(1).replaceAll('/\+/g'," ")) ;

}

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

MySQL 5.6 & PHP 4.4

В MySQL 5.6 значительно поменялись настройки безопасности.

При попытке соединения с базой данных из PHP 4.4.x появляется ошибка:

Client does not support authentication protocol requested
by server; consider upgrading MySQL client

Что бы заставить работать PHP 4.4 вместе с MySQL 5.6 нужно:

  1. Добавить в файл my.conf параметр skip-secure-auth после чего нужно перезапустить сервис MySQL
  2. Обновить информацию о пароле пользователя. Вместо нового формата нужно использовать старый. Для этого:
UPDATE mysql.user SET plugin = 'mysql_old_password'
WHERE User = 'some_user' AND Host = 'some_host';
FLUSH PRIVILEGES;
SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Омск

Приветствую тебя, читатель!

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

Постараюсь разделить этот небольшой рассказ на части. Кому интересно добро пожаловать

Continue reading

Как запустить VBScript в режиме x86 \ Как запустить консоль в режиме x86

Возникла достаточно интересная проблема.

Есть старый VBScript’ик, который соединяется с базой данных и забирает оттуда данные. Делает он это через драйвер, который ставится вместе с BDE.

Проблема… Нужно перенести этот скрипт из Windows Server 2003 на Windows Server 2012 R2. При попытке прямого запуска получаем ошибку — невозможно соединиться с базой. Более того, он даже не может создать объект.

Как решить это?

Continue reading

Как удалить все таблицы из MSSQL

Появилась задача дропнуть все таблицы из базы данных MSSQL не удаляя и создавая базу данных.

DECLARE @Sql NVARCHAR(500) DECLARE @Cursor CURSOR

SET @Cursor = CURSOR FAST_FORWARD FOR
SELECT DISTINCT sql = 'ALTER TABLE [' + tc2.TABLE_NAME + '] DROP [' + rc1.CONSTRAINT_NAME + ']'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc1
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc2 ON tc2.CONSTRAINT_NAME =rc1.CONSTRAINT_NAME

OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql

WHILE (@@FETCH_STATUS = 0)
BEGIN
Exec SP_EXECUTESQL @Sql
FETCH NEXT FROM @Cursor INTO @Sql
END

CLOSE @Cursor DEALLOCATE @Cursor
GO

EXEC sp_MSForEachTable 'DROP TABLE ?'
GO