2015-01-21 18 views
0

我想在我的主应用程序中创建一个子文件夹,但仍然允许独立应用程序访问smarty框架。使用Smarty PHP并需要子系统(独立)

我已经创建了名为“admin”的子文件夹。但是我不知道是否需要将它包含在我的设置文件中。

<?php 
require_once(SMARTY_DIR . 'Smarty.class.php'); 

class Smarty_EVENT extends Smarty { 

    function __construct() 
    { 

    // Class Constructor. 
    // These automatically get set with each new instance. 

    parent::__construct(); 

    $this->setTemplateDir('templates/'); 
    $this->setCompileDir('templates_c/'); 
    $this->setConfigDir('configs/'); 
    $this->setCacheDir('cache/'); 

    $this->caching = Smarty::CACHING_LIFETIME_CURRENT; 
    $this->assign('app_name', 'EVENT'); 
    } 

} 
?> 
+0

如果你是在子文件夹中,然后将'../'添加到您的路径中。所以像'../ smarty/Smarty.class.php'或'../'。 SMARTY_DIR .'Smarty.class.php' – Forien 2015-01-21 09:45:39

+0

为什么使用文件夹而不是路线? (看看Slim框架,它与smarty很好地配合) – 2015-01-21 11:26:36

回答

-1

命名空间是包含其他类的更好方法。
命名空间的优点(主要的东西):

  • 没有斗争包括/需要
  • 只是打字类的路径来加载它
  • 同名不同类别
+0

'include' /'require'与命名空间无关。您可以拥有名称空间并手动包含这些文件,并且可以在不具有名称空间的情况下自动加载。 *上的关键字只是键入路径,PHP神奇地发现它“*是['autoloader'](http://php.net/autoload)。它不会与PHP捆绑在一起。你必须编写它,或者如果你的项目使用['Composer'](https://getcomposer.org/),那么'Composer'会为你写。 – axiac 2015-01-23 16:10:33

+0

你说得对。命名空间是包含/需求的“进化”。所以这取决于你是否使用它。 但是,在这种情况下,当您需要包含类时,最好使用命名空间而不是include/require。 – 2015-01-26 10:47:58