К основному контенту

Сообщения

Сообщения за 2016

Отмена возможности регистрации в dektrium / yii2-user

В одном из проектов появилась необходимость регистрации пользователей только с помощью панели администрирования. То есть  исключить полностью возможность регистрации пользователями. Для авторизации в проекте (Yii2) исспользую библиотеку dektrium. В документации пишут следующее: enableRegistration (Type:  boolean , Default value:  true ) If this option is set to  false , users will not be able to register an account. Registration page will throw  HttpNotFoundException . However confirmation will continue working and you as an administrator will be able to create an account for user from admin interface. Если данная опция устанеовлена в false, пользователи не смогут зарегистрировать свой аккаунт. Страница регистрации будет выводить  HttpNotFoundException  исключение. В тоже время подтверждение регистрации будет работать, и вы, как администратор будете иметь возможность создавать пользователей из панели администрирования. Т.е в конфиге должно быть следующее: 'modules'

Ошибка в mysql "BLOB/TEXT COLUMN 'COLUMNNAME' CAN'T HAVE A DEFAULT VALUE"

При создании поля типа TEXT или BLOB в MySQL, если указать полю значение по умолчанию,  можно столкнуться со следующей ошибкой: BLOB/TEXT column '...' can't have a default value Данная проблема решается путем изменения настроек mysql в файле my.cnf: sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" Меняем на sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" То есть необходимо просто убрать директиву NO_ENGINE_SUBSTITUTION

500 Illegal PORT command + vsftpd + linux

Часто, если сервер находится за шлюзом и нам необходимо поднимать ftp, мы столкнемся с данной проблемой. Сторонний клиент из-за шлюза не сможет подключиться к нашему ftp-серверу, но с локальной сети никаких нестыковок не возникнет. Проблема заключается в особенностях работы пассивного режима FTP. Используя vsftpd нам необходимо предпринять несколько шагов для устранения данной неполадки. Внести изменения в vsftpd.conf (/etc/vsftpd.conf). passv_enable=YES passv_min_port=30000 passv_max_port=30100 Перезагрузить vsftpd Открыть порты 30000-30100 на сервере Пробросить порты 30000-30100 на вашем коммутаторе в сторону сервера.. После этого из интернета ftp будет доступен в пассивном режиме.

Ошибка при установке плагина composer-asset-plugin v1.0.0-beta3

При попытке установки плагина composer-asset-plugin v1.0.0-beta3 с помощью команды php composer.phar global require "fxp/composer-asset-plugin:1.0.0-beta3" может возникнуть следующая ошибка: Your requirements could not be resolved to an installable set of packages.   Problem 1     - Installation request for fxp/composer-asset-plugin 1.0.0-beta3 -> satisfiable by fxp/composer-asset-plugin[v1.0.0-beta3].     - fxp/composer-asset-plugin v1.0.0-beta3 requires composer-plugin-api 1.0.0 -> no matching package found. Potential causes:  - A typo in the package name  - The package is not available in a stable-enough version according to your minimum-stability setting    see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details. Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems. Installation failed, deleting ./composer.json. Проблема решается банально. Необходимо ставить обновленный

Проблемы с установкой Composer для Yii2

Давеча начал изучать фраймворк Yii2. Так как с ним раньше не имел никаких дел, начал с нуля, то есть скачал книгу Web application development with yii 2 and php (кстати думаю сделать перевод, так как не нашел нигде). Первое что надо было - установить Composer, и тут я столкнулся с проблемой. Почвой для изучения и тестирования я выбрал Linux OpenSUSE 12.3, так как неплохо с ним знаком. Установил его себе на VirtualBox. Для начала мне необходимо скачать архив с нужным инструментом: $ curl -sS https://getcomposer.org/installer | php На что я получил ошибку: If 'php' is not a typo you can use command-not-found to lookup the package that contains it, like this cnf php То есть, для начала нам необходимо установить php. No problem... yast -i php Но меня снова ждало разочарование Some settings on your machine make Composer unable to work properly. Make sure that you fix the issues listed below and run this script again: The phar extension is missing. Install it o

Ищем отличия между двумя коллекциями объектов с помощью C#

Введение Имея некую текущую коллекцию объектов и новую коллекцию, нам необходимо узнать какие элементы были добавлены в оригинал, а которые были удалены. Описание Что бы было проще, назовем текущую коллекцию А, а новую коллекцию, в которой будут изменения – B Объекты, которые удалены  содержатся в коллекции А, но не содержаться в B Объекты, которые добавлены – это те объекты, которые содержатся в коллекции B, но не содержаться в A Код: Опишем сказанное выше с помощью следующего кода: public static void Compare < T > ( List < T > existing, List < T > updated, out List < T > added, out List < T > removed ) where T : IComparable { added = updated. Except ( existing ) . ToList ( ) ; removed = existing. Except ( updated ) . ToList ( ) ; } В принципе, как вы видите ничего сложного. Пример Теперь прикинем на примере: static void Main ( string [ ] args ) { List < int > A = new List < int > ( )

Получить все подстроки между круглыми скобками с помощью регулярных выражений

Часто встречается необходимость выделить из строки выражения, которые находятся между простых скобок. Для примера у меня была задача найти в коде все вхождения функции function( var 1, var 2) и получить оттуда переменные. Подобные задачи решаются с помощью регулярных выражений. В данном случае: function\ ( ( ? < val > . * ? ) \ ) Разберем данное выражение подробнее. function – последовательность символов до скобок (название нашей функции) \( , \) - экранированные символы «скобка» (? ,   ?) – Выделяет часть нужного нам выражения в группу < val > - группа нужного нам выражения .* - учитывать все символы между скобками В итоге у нас получился следующий код (для C#) Regex pattern = new Regex ( @ "function\((?<val>.*?)\)" ) ;   foreach ( Match m in pattern. Matches ( fStr ) ) { if ( m. Success ) { string val1 = m. Groups [ "val" ] . Value . Split ( ',' ) [ 0 ] ;