コード例 #1
0
ファイル: ConstClass.php プロジェクト: maslosoft/sprite
 /**
  * Add constant from sprite, but only if in current package.
  * @param SpriteImage $sprite
  */
 public function add(SpriteImage $sprite)
 {
     $dest = $this->package->getConstantsClass();
     foreach ($sprite->packages as $package) {
         $src = $package->getConstantsClass();
         if ($src === $dest) {
             $this->addSprite($sprite);
         }
     }
 }
コード例 #2
0
ファイル: Namer.php プロジェクト: maslosoft/sprite
 public static function nameConstant(SpritePackageInterface $package, SpriteImage $sprite)
 {
     $converter = $package->getConstantsConverter();
     if (!empty($converter)) {
         if (!is_callable($converter, true)) {
             throw new RuntimeException('Variable of type `%s` is not callable', get_type($converter));
         }
         $params = [$package, $sprite];
         $name = call_user_func_array($converter, $params);
     } else {
         $name = $sprite->name;
     }
     // Last resort replacements
     $name = preg_replace('~^[0-9]+~', '', $name);
     return str_replace('-', '_', $name);
 }
コード例 #3
0
 public static function generate(SpritePackageInterface $package)
 {
     $path = $package->getConstantsClassPath();
     if (empty($path)) {
         return;
     }
     $className = $package->getConstantsClass();
     $parts = explode('\\', $className);
     $name = array_pop($parts);
     $ns = implode('\\', $parts);
     $fileName = sprintf('%s/%s.php', $path, $name);
     if (!file_exists($fileName)) {
         $view = new MiniView(new self());
         $params = ['tag' => '<?php', 'ns' => $ns, 'name' => $name];
         $def = $view->render('constantsClass.latte', $params, true);
         $result = file_put_contents($fileName, $def);
         assert($result, new RuntimeException("Could not write into {$fileName}"));
     }
 }