Различные вопросы по PHP и MySQL

256K
.
Rakovskiy
The Fast, Secure and Professional - Yii2
# ramzes (11.02.2015 / 23:12)
Rakovskiy, UsersGroupPermissions::inGroup
выбери один стандарт, или с заглавной, или со строчной, неудобно читать
PSR. Только название чуть длинноватое
.
The Fast, Secure and Professional - Yii2
# ramzes (11.02.2015 / 23:12)
Rakovskiy, UsersGroupPermissions::inGroup
выбери один стандарт, или с заглавной, или со строчной, неудобно читать
http://prntscr.com/63x827
.
The Fast, Secure and Professional - Yii2

reaper, Не в курсе какая может быть максимальная длина названия класса?

.
# Rakovskiy (11.02.2015 / 23:25)
PSR. Только название чуть длинноватое
х.з. мне как читателю, очень трудно такое читать, воспринимается как мясо
.
Rakovskiy
The Fast, Secure and Professional - Yii2
# ramzes (11.02.2015 / 23:36)
х.з. мне как читателю, очень трудно такое читать, воспринимается как мясо
Это потому, что i первая, а так ClassName::methodName() лучше чем ClassName::MethodName()
Ну в том коде, что выше есть пару боков по PSR, вот так по-моему строго по PSR

Модель (+/-)
<?php

namespace app\modules\admin\models;

use Yii;
use app\modules\admin\models\UsersPermissions;
use yii\helpers\Html;

/**
 * This is the model class for table "users_groups".
 *
 * @property integer $id
 * @property string $name
 * @property string $alias
 */
class UsersGroups extends \yii\db\ActiveRecord
{
    /**
     * Массив прав доступа
     */
    public $permissions = [];

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'users_groups';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['name', 'alias'], 'required'],
            [['name', 'alias'], 'string', 'max' => 50],
            ['name', 'unique', 'targetAttribute' => 'name', 'message' => 'Группа с таким названием уже существует'],
            ['alias', 'unique', 'targetAttribute' => 'alias', 'message' => 'Группа с таким алиасом уже существует'],
            [['permissions'], 'safe']
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'name' => 'Название',
            'alias' => 'Алиас',
            'permissions' => 'Права доступа'
        ];
    }

    /**
     * Получаем права доступа
     * @return array
     */
    public function getPermissions()
    {
        $items = [];
        foreach (UsersPermissions::find()->orderBy('module ASC')->all() as $item) {
            $items[$item->id] = $item->module . '_' . $item->action;
        }
        return $items;
    }

    /**
     * Сохраняем отмеченые нами права доступа для группы
     * @return void
     */
    private function savePermission()
    {
        if (is_array($this->permissions) === false) {
            $this->permissions = [];
        }

        $delete = [];
        $groupItems = UsersGroupPermissions::getPermissions($this->id);

        foreach ($this->getPermissions() as $key => $value) {
            if (in_array($key, $this->permissions) === true) {
                if (UsersGroupPermissions::inGroup($this->id, $key) === false) {
                    $model = new UsersGroupPermissions();
                    $model->group = $this->id;
                    $model->permission = $key;
                    $model->save();
                }
            } elseif (in_array($key, $groupItems)) {
                $delete[] = $key;
            }
        }

        if (empty($delete) === false) {
            UsersGroupPermissions::deleteAll(['group' => $this->id, 'permission' => $delete]);
        }
    }

    /**
     * @inheritdoc
     */
    public function afterSave($insert, $changedAttributes)
    {
        $this->savePermission();
        return parent::afterSave($insert, $changedAttributes);
    }
}
.

Rakovskiy, на твой пост (11.02.2015 / 23:36) отвечу, В рекомендациях не описано, PHP вроде тоже ограничений не накладывает. Так или иначе не нужно городить длиннючие названия, которые хрен запомнишь.

.
Rakovskiy
The Fast, Secure and Professional - Yii2
# reaper (11.02.2015 / 23:55)
Rakovskiy, на твой пост (11.02.2015 / 23:36) отвечу, В рекомендациях не описано, PHP вроде тоже ограничений не накладывает. Так или ин
Спасибо понял. {з как назвать таблицу связей прав доступа и групп для юзера, пришлось назвать users_group_permissions
.
reaper

Rakovskiy, Уж тогда наверное user_group_permissions по лучше будет.
Или user_groups. Честно, до сих пор не знаю, как правильнее таблицы в бд обзывать .

.
Ей 25
# reaper (12.02.2015 / 00:10)
Rakovskiy, Уж тогда наверное user_group_permissions по лучше будет.
Скоротил на 1 букву... Могёшь.
Может просто сокращать длинные слова? Ну там permissions - perm или prss. Хотя второй вариант бредовый. Лучше perm или permis. Так более понятно о чём речь.
.
(\/)____o_O____(\/)
# Rakovskiy (11.02.2015 / 18:55)
Ну тогда буду писать на русском потому. Вот моя дока.

[php]
<?php

namespace app\modules\admin\models;

use Yii;
use app\modules\admin\models\UsersPermissions;
use yii\helpers\Html;

/**
зачем мешанину устроил, у тебя массив на выходе, массив определенной важности, зачем там еще и вывод текста ошибки? цифрами ретурни, цифру уже обрабатывай, текст ошибки как минимум должен быть в шаблонизаторе, а лучше в классе обработки ошибок
Всего: 7969