{"id":19553931,"url":"https://github.com/developeruz/yii-behaviors","last_synced_at":"2025-04-26T21:31:20.543Z","repository":{"id":22566081,"uuid":"25907411","full_name":"developeruz/yii-behaviors","owner":"developeruz","description":"Полезные поведения для Yii2","archived":false,"fork":false,"pushed_at":"2015-01-13T04:51:57.000Z","size":221,"stargazers_count":14,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-04T18:03:31.619Z","etag":null,"topics":["behaviors","yii2"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developeruz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-29T06:18:56.000Z","updated_at":"2024-03-13T10:08:32.000Z","dependencies_parsed_at":"2022-09-16T06:23:22.531Z","dependency_job_id":null,"html_url":"https://github.com/developeruz/yii-behaviors","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeruz%2Fyii-behaviors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeruz%2Fyii-behaviors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeruz%2Fyii-behaviors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeruz%2Fyii-behaviors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developeruz","download_url":"https://codeload.github.com/developeruz/yii-behaviors/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251057287,"owners_count":21529637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["behaviors","yii2"],"created_at":"2024-11-11T04:25:18.788Z","updated_at":"2025-04-26T21:31:20.255Z","avatar_url":"https://github.com/developeruz.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Полезные поведения для Yii2\n=============\n\n###Установка:###\n```bash\n$ php composer.phar require developeruz/yii-behaviors \"*\"\n```\n\nDateTimeBehavior\n-------------\n\nЧасто в проектах бывает нужно отобразить дату, хранимую в БД как `datetime` в привычном для пользователя формате.\nДанное поведение конвертирует дату в заданный формат после получения модели из БД, и возвращает его в правильный для БД формат перед валидацией\n\nПример использования в моделе:\n```php\nuse developeruz\\behaviors\\DateTimeBehavior;\n\npublic function behaviors()\n{\n    return  [\n        'dateTimeStampBehavior' =\u003e [\n            'class' =\u003e DateTimeBehavior::className(),\n            'dateTimeFields' =\u003e 'date_create', //атрибут модели, который будем менять\n            'format'         =\u003e 'd/m/Y H:i',   //формат вывода даты для пользователя\n        ]\n    ]\n}\n```\n\nSimpleFormBehavior\n-------------\n\nПоведение генерирует форму для модели и сохраняет ее в переменной класса модели\n\nПример использования в модели:\n```php\n    use developeruz\\behaviors\\SimpleFormBehavior;\n\n    public $form;\n\n    public function behaviors()\n    {\n        return  [\n           'SimpleFormBehavior' =\u003e [\n                'class'    =\u003e SimpleFormBehavior::className(),\n                'resultFormField' =\u003e 'form', // поле в модели, в котором хранится готовая форма\n                'scenario'        =\u003e 'test', // сценарий, порядок полей в форме будет соотвествовать порядку перечисления полей в сценарии\n                'config' =\u003e\n                         [\n                            SimpleFormBehavior::TypeHidden   =\u003e ['parent_id'],\n                            SimpleFormBehavior::TypeBoolean  =\u003e ['moderation'],\n                         ],\n                'formOption' =\u003e [ 'enctype'=\u003e 'multipart/form-data'],\n                'widget' =\u003e [\n                         'content' =\u003e [\n                             'class'  =\u003e TinyMce::className(),\n                             'config' =\u003e [\n                                    'options' =\u003e ['rows' =\u003e 6],\n                                    'language' =\u003e 'ru',\n                             ]\n                         ]\n           ],\n        ];\n    }\n```\n\nПосле привязки поведения к модели, в представлении можно использовать переменную `$form` для вывода готовой формы\n```php\n\u003c?= $model-\u003eform ?\u003e\n```\nВ `config` указываются нестандартные типы полей (`password`, `hidden`, `file` и т.п.). Типы \"строка\" или \"текст\" указывать не обязательно.\nТакже есть возможность добавить виджет к любому из полей формы.\n\n\nThumbBehavior\n-------------\n\nПоведение для загрузки изображений и генерации превью-картинок.\n\nПодцепляем к модели:\n```php\n use developeruz\\behaviors\\ThumbBehavior;\n\n public function behaviors()\n    {\n        return  [\n            'thumbBehavior' =\u003e [\n                'class' =\u003e ThumbBehavior::className(),\n                'fileAttribute' =\u003e 'thumb', //атрибут модели для картинки\n                'saveDir' =\u003e '/../frontend/web/upload/', //путь для сохранения картинок\n                'previewSize' =\u003e [[100, 100], [250, 250]] //размеры генерируемых превью\n            ],\n        ];\n    }\n```\n\nТеперь перед валидацией модели, поведение сохранит картинку, если она была загружена. Присвоит атрибуту модели имя сохранненного файла и сгенерирует превью для заданных размеров.\nА перед удалением модели - удалит картинку и все превью.\nАтрибуту модели, указанному в fileAttribute будет присвоено уникальное имя сохраненного файла.\nПолучить доступ к имени картинки и превью можно через методы getImage() и getPreview($size)\n```php\n    $post = Post::findOne(1);\n    $post-\u003egetImage(); // возвращает имя картинки, без полного пути до директории сохранения\n    $post-\u003egetPreview([100,100]); // возвращает имя превью задданого размера, без полного пути до директории сохранения\n```\nЕсли превью указанного размера не существует, метод getPreview возвращает false.\nВажно: saveDir - путь для сохранения картинок указывается относительно корня текущего приложения Yii::$app-\u003ebasePath.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperuz%2Fyii-behaviors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeveloperuz%2Fyii-behaviors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperuz%2Fyii-behaviors/lists"}