2015-10-01 18 views
3

我已经搜索了很多如何加载/包含一个简单的类在symfony 1.4中,我什么也没找到。我有这种情况。在symfony 1.4中加载外部库的最佳方法是什么?

下:

./apps/APP_NAME/ 
    modules/MOD_NAME/lib 

我有一个类:

class MyClass { 
    function get_data(){ 
     retrun "data"; 
    } 
} 
  • 这是在控制器上加载的symfony 1.4班上最好的方法是什么?
  • Over on config存在一些其他方式,如函数use_helper()?

更新:我要按需加载,而不是自动加载用symfony 1.4的约定命名文件MyClass.class.php

+1

有没有理由不能'要求'MyClass.php';'该文件和'使用MyClass;'它呢?不使用自动加载器是一个奇怪的决定,但。 – HPierce

+0

需求||的问题require_once在模块env中不灵活。例如,当我调用use_helper()作为第二个参数时,我可以指定模块。 – onalbi

回答

1

是不是最好的,但第一个版本,根据模块工作ENV是:

function load_module_lib($module, $name_file) { 
     require_once (sfContext::getInstance()->getModuleDirectory() . '/../' . $module . '/lib/' . $name_file . '.class.php'); 
    } 
0

该文件允许您定义可以当Symfony的负载自动加载额外的类。和Symfony的允许您将PHP代码.yml文件中

##apps/appName/config/autoload.yml 
autoload: 
    makeupaname: 
    name: Make up a name 
    path: <?php echo $mydynamicvar; ?>/someFolder/ 
    recursive: on 

    makeupasecondname: 
    name: Make up a second name 
    path: <?php echo $mydynamicvar; ?>someOtherFolder/ 
    recursive: on 

以及去深入这个额外的链接autoloading namespaces in symfony 1.4How to create/use custom classes and helper in symfony 1.4?

编辑01

如果你想要放置externel库,您必须将其放置在lib/vendor文件夹中。你不能在app文件夹中创建它。

以及如果你只是添加新的图书馆,网站将不会加载你的图书馆。所以,只有你必须使用autoload文件来做到这一点

本文将帮助你。 Loading external libraries for symfony 2

+1

这似乎是在正常使用情况下的正确解决方案,但问题明确地呼吁使用自动装载器_not_,并允许类按需加载 - 我不确定此解决方案。 – HPierce

相关问题