Zephir\BaseBackend::getTemplateFileContents PHP Method

getTemplateFileContents() public method

Resolves the path to the source template file of the backend
public getTemplateFileContents ( $filename ) : string
return string Absolute path to template file
    public function getTemplateFileContents($filename)
    {
        $filepath = realpath(rtrim($this->config->get('templatepath', 'backend'), '/') . '/' . $this->name . '/' . $filename);
        if (!file_exists($filepath)) {
            $filepath = realpath(__DIR__ . '/../templates/' . $this->name . '/' . $filename);
        }
        return file_get_contents($filepath);
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Generate package-dependencies config for m4
  *
  * @param $contentM4
  * @throws Exception
  * @return string
  * TODO: Move the template depending part to backend?
  */
 public function generatePackageDependenciesM4($contentM4)
 {
     $packageDependencies = $this->config->get('package-dependencies');
     if (is_array($packageDependencies)) {
         $pkgconfigM4 = $this->backend->getTemplateFileContents('pkg-config.m4');
         $pkgconfigCheckM4 = $this->backend->getTemplateFileContents('pkg-config-check.m4');
         $extraCFlags = '';
         foreach ($packageDependencies as $pkg => $version) {
             $pkgM4Buf = $pkgconfigCheckM4;
             $operator = '=';
             $operatorCmd = '--exact-version';
             $ar = explode("=", $version);
             if (count($ar) == 1) {
                 if ($version == '*') {
                     $version = '0.0.0';
                     $operator = '>=';
                     $operatorCmd = '--atleast-version';
                 }
             } else {
                 switch ($ar[0]) {
                     case '<':
                         $operator = '<=';
                         $operatorCmd = '--max-version';
                         $version = trim($ar[1]);
                         break;
                     case '>':
                         $operator = '>=';
                         $operatorCmd = '--atleast-version';
                         $version = trim($ar[1]);
                         break;
                     default:
                         $version = trim($ar[1]);
                         break;
                 }
             }
             $toReplace = array('%PACKAGE_LOWER%' => strtolower($pkg), '%PACKAGE_UPPER%' => strtoupper($pkg), '%PACKAGE_REQUESTED_VERSION%' => $operator . ' ' . $version, '%PACKAGE_PKG_CONFIG_COMPARE_VERSION%' => $operatorCmd . '=' . $version);
             foreach ($toReplace as $mark => $replace) {
                 $pkgM4Buf = str_replace($mark, $replace, $pkgM4Buf);
             }
             $pkgconfigM4 .= $pkgM4Buf;
             $extraCFlags .= '$PHP_' . strtoupper($pkg) . '_INCS ';
         }
         $contentM4 = str_replace('%PROJECT_EXTRA_CFLAGS%', '%PROJECT_EXTRA_CFLAGS% ' . $extraCFlags, $contentM4);
         $contentM4 = str_replace('%PROJECT_PACKAGE_DEPENDENCIES%', $pkgconfigM4, $contentM4);
         return $contentM4;
     }
     $contentM4 = str_replace('%PROJECT_PACKAGE_DEPENDENCIES%', '', $contentM4);
     return $contentM4;
 }