コード例 #1
0
 /**
  * getUrl
  *
  * @return  string
  */
 protected function getUrl()
 {
     $package = PackageHelper::getPackage($this->package);
     $package = $package ?: Ioc::get('current.package');
     $route = $this->get('route', $this->route) ?: $this->view;
     $query = $this->get('query', $this->query);
     return $package->router->html($route, array_merge(array('layout' => 'modal', 'selector' => '#' . $this->getId() . '-wrap', 'function' => 'Natika.Field.Modal.select'), $query));
 }
コード例 #2
0
 /**
  * phoenixName
  *
  * @return  string
  */
 protected static function phoenixName()
 {
     static $name;
     if ($name) {
         return $name;
     }
     return $name = PackageHelper::getAlias(PhoenixPackage::class);
 }
コード例 #3
0
 /**
  * loadAll
  *
  * @param string $package
  * @param string $format
  *
  * @return  void
  */
 public static function loadAll($package, $format = 'ini')
 {
     if (is_string($package)) {
         $package = PackageHelper::getPackage($package);
     }
     if (!$package) {
         return;
     }
     $path = $package->getDir() . '/Resources/language';
     static::loadAllFromPath($path, $format, $package);
 }
コード例 #4
0
ファイル: UpCommand.php プロジェクト: bgao-ca/vaseman
 /**
  * doExecute
  *
  * @return  integer
  */
 protected function doExecute()
 {
     DateTimeHelper::setDefaultTimezone();
     $this->out()->out('Vaseman generator')->out('-----------------------------')->out()->out('<comment>Start generating site</comment>')->out();
     $controller = new GetController();
     $event = new Event('onBeforeRenderFiles');
     $event['config'] = $this->app->getConfig();
     $event['controller'] = $controller;
     $event['io'] = $this->io;
     Ioc::getDispatcher()->triggerEvent($event);
     $dataRoot = $this->app->get('project.path.data', WINDWALKER_ROOT);
     $folders = $this->app->get('folders', array());
     $controller->setPackage(PackageHelper::getPackage('vaseman'));
     $controller->setApplication($this->app);
     $assets = array();
     $processors = array();
     foreach ($folders as $folder) {
         $files = Filesystem::files($dataRoot . '/' . $folder, true);
         foreach ($files as $file) {
             $asset = new Asset($file, $dataRoot . '/' . $folder);
             $layout = Path::clean($asset->getPath(), '/');
             $input = new Input(array('paths' => explode('/', $layout)));
             $config = $controller->getConfig();
             $config->set('layout.path', $asset->getRoot());
             $config->set('layout.folder', $folder);
             $controller->setInput($input)->execute();
             $processors[] = $controller->getProcessor();
         }
     }
     $event->setName('onAfterRenderFiles');
     $event['processors'] = $processors;
     Ioc::getDispatcher()->triggerEvent($event);
     $event->setName('onBeforeWriteFiles');
     Ioc::getDispatcher()->triggerEvent($event);
     $dir = $this->getOption('dir');
     $dir = $dir ?: $this->app->get('outer_project') ? "" : 'output';
     $dir = $this->app->get('project.path.root') . '/' . $dir;
     /** @var AbstractFileProcessor $processor */
     foreach ($processors as $processor) {
         $file = Path::clean($dir . '/' . $processor->getTarget());
         $this->out('<info>Write file</info>: ' . $file);
         Folder::create(dirname($file));
         file_put_contents($file, $processor->getOutput());
     }
     $event->setName('onAfterWriteFiles');
     Ioc::getDispatcher()->triggerEvent($event);
     $this->out()->out('<info>Complete</info>')->out();
     return 0;
 }
コード例 #5
0
ファイル: MigrateAction.php プロジェクト: ventoviro/phoenix
 /**
  * Do this execute.
  *
  * @return  mixed
  */
 protected function doExecute()
 {
     $this->io->out('[<comment>SQL</comment>] Running migrations');
     $package = 'gen_' . $this->config['replace.package.name.lower'];
     if (!PackageHelper::getPackage($package)) {
         $packageClass = sprintf('%s%s\\%sPackage', $this->config['replace.package.namespace'], $this->config['replace.package.name.cap'], $this->config['replace.package.name.cap']);
         PackageHelper::getInstance()->addPackage($package, $packageClass);
     }
     $dir = WINDWALKER_SOURCE . '/' . str_replace('\\', '/', MvcHelper::getPackageNamespace($packageClass, 1)) . '/Migration';
     /** @var WindwalkerConsole $app */
     $app = Ioc::getApplication();
     // A dirty work to call migration command.
     /** @var IOInterface $io */
     $io = clone $this->io->getIO();
     $io->setArguments(array('migration', 'migrate'));
     $io->setOption('d', $dir);
     $io->setOption('seed', null);
     $io->setOption('s', null);
     $io->setOption('no-backup', true);
     $app->getRootCommand()->setIO($io)->execute();
 }
コード例 #6
0
ファイル: MinifyCommand.php プロジェクト: ventoviro/phoenix
 /**
  * doExecute
  *
  * @return  int
  */
 protected function doExecute()
 {
     $path = $this->getArgument(0);
     $package = $this->getOption('p');
     $folder = $this->console->get('asset.folder', 'asset');
     if ($package = PackageHelper::getPackage($package)) {
         $path = $package->getDir() . '/Resources/asset/' . $path;
     } else {
         $path = WINDWALKER_PUBLIC . '/' . trim($folder, '/') . '/' . $path;
     }
     if (is_file($path)) {
         $files = array(new \SplFileInfo($path));
     } elseif (is_dir($path)) {
         $files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path, \FilesystemIterator::FOLLOW_SYMLINKS));
     } else {
         throw new \InvalidArgumentException('No path');
     }
     /** @var \SplFileInfo $file */
     foreach ($files as $file) {
         $ext = File::getExtension($file->getPathname());
         if (StringHelper::endsWith($file->getBasename(), '.min.' . $ext)) {
             continue;
         }
         if ($ext == 'css') {
             $this->out('[<comment>Compressing</comment>] ' . $file);
             $data = \Minify_CSS_Compressor::process(file_get_contents($file));
             $data = str_replace("\n", ' ', $data);
         } elseif ($ext == 'js') {
             $this->out('[<comment>Compressing</comment>] ' . $file);
             $data = \JSMinPlus::minify(file_get_contents($file));
             $data = str_replace("\n", ';', $data);
         } else {
             continue;
         }
         $newName = $file->getPath() . '/' . File::stripExtension($file->getBasename()) . '.min.' . $ext;
         file_put_contents($newName, $data);
         $this->out('[<info>Compressed</info>] ' . $newName);
     }
 }
コード例 #7
0
 /**
  * testGetModel
  *
  * @return  void
  */
 public function testGetModel()
 {
     $ctrl = PackageHelper::getPackage()->getController('Page/GetController');
     $this->assertInstanceOf(Model::class, $ctrl->getModel());
 }
コード例 #8
0
ファイル: ModalField.php プロジェクト: ventoviro/phoenix
 /**
  * getUrl
  *
  * @return  string
  */
 protected function getUrl()
 {
     $package = PackageHelper::getPackage($this->package);
     $package = $package ?: PackageHelper::getPackage();
     $route = $this->get('route', $this->route) ?: $this->view;
     $query = $this->get('query', $this->query);
     return $package->router->route($route, array_merge(array('layout' => 'modal', 'selector' => '#' . $this->getId() . '-wrap', 'function' => $this->get('function', 'Phoenix.Field.Modal.select')), $query));
 }
コード例 #9
0
 /**
  * setUp
  *
  * @return  void
  */
 public function setUp()
 {
     $this->controller = new GetController(null, Ioc::getApplication(), Ioc::factory(), PackageHelper::getPackage('vaseman'));
 }