Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/cakephp/migrations/src/Util/UtilTrait.php
<?php
/**
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */
namespace Migrations\Util;

use
Cake\Core\Plugin as CorePlugin;
use
Cake\Utility\Inflector;
use
Symfony\Component\Console\Input\InputInterface;

/**
 * Trait gathering useful methods needed in various places of the plugin
 */
trait UtilTrait
{

   
/**
     * Get the plugin name based on the current InputInterface
     *
     * @param \Symfony\Component\Console\Input\InputInterface $input Input of the current command.
     * @return string|null
     */
   
protected function getPlugin(InputInterface $input)
    {
       
$plugin = $input->getOption('plugin') ?: null;

        return
$plugin;
    }

   
/**
     * Get the phinx table name used to store migrations data
     *
     * @param string $plugin Plugin name
     * @return string
     */
   
protected function getPhinxTable($plugin = null)
    {
       
$table = 'phinxlog';

        if (empty(
$plugin)) {
            return
$table;
        }

       
$plugin = Inflector::underscore($plugin) . '_';
       
$plugin = str_replace(['\\', '/', '.'], '_', $plugin);

        return
$plugin . $table;
    }

   
/**
     * Get the migrations or seeds files path based on the current InputInterface
     *
     * @param \Symfony\Component\Console\Input\InputInterface $input Input of the current command.
     * @param string $default Default folder to set if no source option is found in the $input param
     * @return string
     */
   
protected function getOperationsPath(InputInterface $input, $default = 'Migrations')
    {
       
$folder = $input->getOption('source') ?: $default;

       
$dir = ROOT . DS . 'config' . DS . $folder;

        if (
defined('CONFIG')) {
           
$dir = CONFIG . $folder;
        }

       
$plugin = $this->getPlugin($input);

        if (
$plugin !== null) {
           
$dir = CorePlugin::path($plugin) . 'config' . DS . $folder;
        }

        return
$dir;
    }
}