public static function load_extension_class($name)
 {
     $parts = explode('\\', $name);
     $class_name = strtolower(array_pop($parts)) . '.php';
     $extension = reset($parts);
     if (Application::extension_exists($extension)) {
         $parts = array_map([StringHelper::class, 'camelcase_to_dash'], $parts);
         $parts = array_map('strtolower', $parts);
         $file = 'pfmextension://' . implode(DS, $parts) . DS . $class_name;
         if (is_file($file)) {
             require_once $file;
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
Example #2
0
 public static function load_extension($name)
 {
     $name = basename($name);
     if (!Application::extension_exists($name)) {
         return false;
     }
     $extension_class = $name;
     $name = strtolower($name);
     $extension_file_gz = ROOT_PATH . DS . 'extensions' . DS . "{$name}.tar.gz";
     $extension_build_dir = ROOT_PATH . DS . 'build' . DS . $name;
     if (file_exists($extension_build_dir)) {
         $check_is_changed = Application::is_dev() || defined('TESTS_ENV');
         if ($check_is_changed) {
             $is_extension_changed = self::is_extension_changed($name) || !self::is_extension_built($name);
             if ($is_extension_changed) {
                 self::build_extension($name);
             }
         }
     }
     if (!class_exists($extension_class, false)) {
         require_once "phar://{$extension_file_gz}/{$name}.php";
     }
     return true;
 }
 /**
  * @covers common\classes\Application::extension_exists
  */
 public function test_extension_exists()
 {
     self::assertTrue(Application::extension_exists('system'));
     self::assertFalse(Application::extension_exists('smarty'));
 }