Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/friendsofcake/bootstrap-ui/src/Shell/BootstrapShell.php
<?php

namespace BootstrapUI\Shell;

use
Cake\Console\Shell;
use
Cake\Filesystem\File;

/**
 * @property \BootstrapUI\Shell\Task\TwbsAssetsTask $TwbsAssets
 * @property \Cake\Shell\Task\AssetsTask $Assets
 */
class BootstrapShell extends Shell
{
   
/**
     * Tasks used by this shell.
     *
     * @var array
     */
   
public $tasks = ['BootstrapUI.TwbsAssets', 'Assets'];

   
/**
     * Installs assets via npm and symlinks them wo app's webroot
     *
     * @return void
     */
   
public function install()
    {
       
$this->TwbsAssets->installAssets();
       
$this->TwbsAssets->copyAssets();
       
$this->Assets->remove('BootstrapUI');
       
$this->Assets->symlink('BootstrapUI');
    }

   
/**
     * Copies sample layouts to app's Template/Layout/TwitterBootstrap folder
     *
     * @return void
     */
   
public function copyLayouts()
    {
       
$this->TwbsAssets->copyLayouts();
    }

   
/**
     * Modifies AppView to extend UIView
     *
     * @param string|null $path Path to AppView
     * @return void
     */
   
public function modifyView($path = null)
    {
        if (
$path == null) {
           
$path = APP . 'View' . DS . 'AppView.php';
        }
       
$view = new File($path);

       
$view->replaceText('use Cake\\View\\View', 'use BootstrapUI\\View\\UIView');
       
$view->replaceText('class AppView extends View', 'class AppView extends UIView');
       
$view->replaceText("    public function initialize()\n    {\n", "    public function initialize()\n    {\n        parent::initialize();\n");

       
$view->write((string)$view->read());
    }

   
/**
     * Get the option parser.
     *
     * @return \Cake\Console\ConsoleOptionParser
     */
   
public function getOptionParser()
    {
       
$parser = parent::getOptionParser();

        return
$parser->setDescription([
           
'Bootstrap Shell',
           
'',
           
'',
        ])->
addSubcommand('install', [
           
'help' => 'Installs Bootstrap assets and links them to app\'s webroot.',
        ])->
addSubcommand('copyLayouts', [
           
'help' => 'Copies sample layouts to app\'s Template/Layout/TwitterBootstrap folder.',
        ])->
addSubcommand('modifyView', [
           
'help' => 'Modifies AppView.php to extend this plugin\'s UIView. Don\'t use, if you have a already modified AppView',
        ]);
    }
}