вторник, 12 сентября 2017 г.

Установка yii2 + usuario

Предположим, наш сайт будет называться shop, а админка его будет доступна по урлу http://backend.shop.lo


Создаём проект согласно инструкции на оф. сайте


composer.phar global require "fxp/composer-asset-plugin:^1.2.0"
composer.phar create-project yiisoft/yii2-app-advanced shop
cd shop
./init

На вопросы отвечаем:

Your choice [0-1, or "q" to quit] 0
Initialize the application under 'Development' environment? [yes|no] y

Затем создаем базу данных

mysqladmin -uroot create shop

Устанавливаем usuario согласно оф. документации

composer require 2amigos/yii2-usuario

Добавляем пути к миграциям

В console/config/main.php добавляем

'controllerMap' => [
    ...
    'migrate' => [
        'class' => \yii\console\controllers\MigrateController::class,
        'migrationNamespaces' => [
            'Da\User\Migration',
        ],
    ],
],

В backend/config/main.php добавляем

'components' => [
    ...
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],

В common/config/main.php добавляем

'modules' => [
    'user' => [
        'class' => Da\User\Module::class,
        'administratorPermissionName' => 'fullAccess',
    ]
]

Удаляем стартовую миграцию yii

rm console/migrations/m130524_201442_init.php

Запускаем миграции

./yii migrate --migrationPath=@yii/rbac/migrations

Изменяем настройки identityClass в backend/config/main.php

'components' => [
    ...
    'user' => [
        'identityClass' => Da\User\Model\User::class, // здесь раньше было 'common\models\User'

Создаём администратора c почтой admin@shop.lo логином admin и паролем 123456

./yii user/create admin@shop.lo admin 123456

Создаём команду для генерации базового доступа согласно оф. документации

console/controllers/RbacController.php

< ?php
namespace console\controllers;

use Yii;
use yii\console\Controller;

class RbacController extends Controller
{
    public function actionInit()
    {
        $auth = Yii::$app->authManager;

        $fullAccessPerm = $auth->createPermission(Yii::$app->getModule('user')->administratorPermissionName);
        $fullAccessPerm->description = 'Полный доступ';
        $auth->add($fullAccessPerm);

        $admin = $auth->createRole('admin');
        $auth->add($admin);
        $auth->addChild($admin, $fullAccessPerm);

        $auth->assign($admin, 1);
    }
}

Запускаем её

./yii rbac/init

Проверяем

Заходим на http://backend.shop.lo/index.php?r=user%2Fadmin%2Findex
После авторизации должно показать панель управления пользователями и доступами

воскресенье, 13 августа 2017 г.

установка xdebug для sublime + php5 на linux

Установка xdebug


sudo apt install php5-xdebug

Редактируем php.ini

sudo subl /etc/php5/fpm/php.ini

Вставляем строчки

xdebug.remote_enable=On
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_log="/log/var/xdebug.log"
xdebug.remote_mode="req"

Перезапускаем php-fpm

sudo service php5-fpm restart

Проверяем, что все встало как надо

php5-fpm -m -c | grep xdebug

Если видно xdebug то все в порядке

Настраиваем sublime text


Устанавливаем в sublime пакет xdebug client, для этого должен быть установлен package control.
В sublime text нажимаем ctrl + shift + p выбираем Package Control: install Package, немного ждем, пока sublime прочитает репозитории и в появившемся окне ищем Xdebug client.  
Затем создаем проект Project -> Save project as
И в появившемся файле настроек проекта (имяпроекта.sublime-project) пишем  

"settings": {
    "xdebug": {
         "url": "http://public.tonar.lo/",
         "max_depth": 5
    }
}


Узел settings должен быть корневым, т.е. в целом должно получиться что то вроде этого

{
 "folders":
 [
  {
   "follow_symlinks": true,
   "path": "."
  }
 ],
    "settings": {
        "xdebug": {
             "url": "http://public.tonar.lo/",
             "max_depth": 5
        }
    }
}


Проверяем, у нас должна появится вкладка xdebug в контекстном меню и в Tools Теперь настроим горячие клавиши Идем в Preferences -> Key Bindings и редактируем

[
 {"keys": ["ctrl+f8"], "command": "xdebug_breakpoint"},
 {"keys": ["shift+f8"], "command": "xdebug_conditional_breakpoint"},
 {"keys": ["ctrl+shift+f5"], "command": "xdebug_continue", "args": {"command": "run"}},
 {"keys": ["ctrl+shift+f6"], "command": "xdebug_continue", "args": {"command": "step_over"}},
 {"keys": ["ctrl+shift+f7"], "command": "xdebug_continue", "args": {"command": "step_into"}},
 {"keys": ["ctrl+shift+f8"], "command": "xdebug_continue", "args": {"command": "step_out"}},
 {"keys": ["ctrl+shift+f9"], "command": "xdebug_session_start"},
 {"keys": ["ctrl+shift+f10"], "command": "xdebug_session_stop"},
 {"keys": ["ctrl+shift+f11"], "command": "xdebug_layout", "args": {"keymap" : true}}
]

Горячие клавиши по умолчанию можно посмотреть распаковав пакет Xdebug Client в файле Default.sublime-keymap

Страница пакета Xdebug Client

среда, 5 июля 2017 г.

Yii включить gii

В config/main.php

В modules надо добавить

'gii' => array(
    'class' => 'system.gii.GiiModule',
    'password' => '1',
),


В urlManager rules

'gii'=>'gii',
'gii/<controller:\w+>'=>'gii/<controller>',
'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',

yii Распечатать конфиг

print_r(Yii::app()->getComponents(false));

git Игнорировать изменения прав доступа

git config core.fileMode false

В конфиге:

core.fileMode
 If false, the executable bit differences between the index and the
 working copy are ignored; useful on broken filesystems like FAT.
 See git-update-index(1). True by default.



-c для установки в одной команде:

git -c core.fileMode=false diff

--global Установит поведение по умолчанию для текущего юзера:

git config --global core.fileMode false


core.fileMode Охватывает только бит исполнения.