Для создания нового модуля в Yii2 через командную строку нужно выполнить
./yii gii/module --moduleID=admin --moduleClass=app\\modules\\admin\\Module
Я занимаюсь web разработкой на php с использованием Yii 2. Сюда я буду выкладывать небольшие заметки по администрированию и программированию, которые мне хотелось бы сохранить для себя. Моя личная база знаний
./yii gii/module --moduleID=admin --moduleClass=app\\modules\\admin\\Module
php composer.phar require "andres-montanez/magallanes:*"Выносим mage в корень проекта, для этого создаем файл mage следующего содержания:
#!/usr/bin/env phpИ разрешаем его запускать
<?php
$baseDir = __DIR__ . '/vendor/andres-montanez/magallanes';
define('MAGALLANES_VERSION', '1.0.3');
define('MAGALLANES_DIRECTORY', $baseDir);
require_once __DIR__ . '/vendor/autoload.php';
// Clean arguments
array_shift($argv);
// Run Magallanes
$console = new Mage\Console;
$exitCode = $console->run($argv);
exit((integer) $exitCode);
chmod +x ./mageДальше делаем все по инструкции. Настраиваем проект
Добавляем конфигурацию для деплояmage init --name="My fantastic app" --email="notifications@my.app"
mage add environment --name="production" --enableReleasesСобственно сам деплой
Основные настройки проекта хорошо расписаны на сайте magephp.com, но есть пара моментов, с которыми мне пришлось разбираться.mage deploy to:production
#productionДля установки разрешений используем команду filesystem/apply-facls.
deployment:
user: vlad
from: ./
to: /opt/www/promokashka_com
excludes:
- .idea
- composer.phar
- mage
- node_modules
- web/assets
- runtime
- config/_local.php
releases:
enabled: true
max: 10
symlink: current
directory: releases
hosts:
- promokashka.com:2222
tasks:
pre-deploy:
- composer/install
- composer/generate-autoload
on-deploy:
post-release:
- filesystem/apply-facls:
recursive:true
acl_param: "o:rwx"
folders: [ runtime, web/assets ]
#productionТут я прилинковываю каталоги runtime, web/assets и файл config/_local.php
deployment:
user: vlad
from: ./
to: /opt/www/promokashka_com
excludes:
- .idea
- composer.phar
- mage
- node_modules
- web/assets
- runtime
- config/_local.php
releases:
enabled: true
max: 10
symlink: current
directory: releases
hosts:
- promokashka.com:2222
tasks:
pre-deploy:
- composer/install
- composer/generate-autoload
on-deploy:
post-release:
- filesystem/apply-facls:
recursive:true
acl_param: "o:rwx"
folders: [ runtime, web/assets ]
- filesystem/link-shared-files:
linked_folders:
- web/assets
- runtime
linked_files:
- config/_local.php
shared: shared
linking_strategy: absolute
<?php
namespace Task;
use Mage\Task\AbstractTask;
class SharedCopy extends AbstractTask
{
public function getName()
{
return 'Deploy shared files';
}
public function run()
{
$deployToDirectory = $this->getConfig()->deployment('to');
$files = $this->getParameter('files', []);
$shared = $this->getParameter('shared', 'shared');
foreach ($files as $file) {
$command =
'scp ' . $this->getConfig()->getHostIdentityFileOption() . '-P ' . $this->getConfig()->getHostPort()
. ' ' . $file . ' ' . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName()
. ':' . $deployToDirectory . '/' . $shared . '/' . preg_replace('/\/([^\/]*)$/', '', $file);
$this->runCommandLocal($command);
}
return true;
}
}
#productionОднако это не будет работать, если магелан подключен через composer, нужно подправить автолоадинг composer'а
deployment:
user: vlad
from: ./
to: /opt/www/promokashka_com
excludes:
- .idea
- composer.phar
- mage
- node_modules
- web/assets
- runtime
- config/_local.php
releases:
enabled: true
max: 10
symlink: current
directory: releases
hosts:
- promokashka.com:2222
tasks:
pre-deploy:
- composer/install
- composer/generate-autoload
on-deploy:
post-release:
- filesystem/link-shared-files:
linked_folders:
- web/assets
- runtime
linked_files:
- config/_local.php
shared: shared
linking_strategy: absolute
- shared-copy:
files:
- web/assets/all*
"autoload": {и обновляемся командов
"psr-4":{ "Task\\" : ".mage/tasks"}
}
php composer.phar update