这就是我自动加载controllers
文件夹中所有类的方式,
# auto load controller classes
function __autoload($class_name)
{
$filename = 'class_'.strtolower($class_name).'.php';
$file = AP_SITE.'controllers/'.$filename;
if (file_exists($file) == false)
{
return false;
}
include ($file);
}
但是我的models
文件夹中也有类,我也想自动加载它们-我该怎么办?我应该复制上面的自动加载并仅将路径更改为models/
(但是不是重复吗?)?
谢谢。
编辑:
这些是我在控制器文件夹中的类文件名:
class_controller_base.php
class_factory.php
etc
这些是我在模型文件夹中的类文件名:
class_model_page.php
class_model_parent.php
etc
通常这就是我命名控制器类类的方式(我使用下划线和小写),
class controller_base
{
...
}
class controller_factory
{
...
}
这通常是我为模型类类命名的方式(我使用下划线和小写),
class model_page
{
...
}
class model_parent
{
...
}
您应该命名您的类,以便将下划线(_
)转换为目录分隔符(/
)。一些PHP框架可以做到这一点,例如Zend和Kohana。
因此,您可以为课程命名,然后Model_Article
将文件放入其中classes/model/article.php
,然后自动加载就可以了…
function __autoload($class_name)
{
$filename = str_replace('_', DIRECTORY_SEPARATOR, strtolower($class_name)).'.php';
$file = AP_SITE.$filename;
if ( ! file_exists($file))
{
return FALSE;
}
include $file;
}
还要注意,您可以spl_autoload_register()
使任何功能成为自动加载功能。它也更加灵活,允许您定义多个自动加载类型的函数。
如果必须有多个自动加载功能,则spl_autoload_register()允许这样做。它有效地创建了自动加载功能队列,并按照定义的顺序遍历每个功能。相反,__
autoload()只能定义一次。
编辑
注意: 自PHP 7.2.0起,__ autoload
已被弃用。强烈建议不要使用此功能。请参阅PHP文档以获取更多详细信息。http://php.net/manual/zh/function.autoload.php
我目前正在制作一个Minecraft Mod Loader。 正如您在上面看到的,我有一个名为Client的类。当Minecraft游戏启动时,启动被调用。现在我有一个名为Mods的文件夹,在调用startup时,我需要将Mods从Mods文件夹加载到ArrayList命名模块中。更深入地说,每个Mod将有一个继承这个模块类的主类 因此,在调用startup时,我需要遍历mods文件夹中的每个Mo
如何使用作曲家自动加载从不同的文件夹获取类、特征、接口? 其中一些我使用名称空间,例如, 控制器/Foo.php, 模型/Boo。php index.php, 错误 致命错误:类'MyNamespace\Foo'中找不到C:... composer.json, 我在许多不同的文件夹中有许多类(它可能会扩展),所以当我在一个新文件夹中有新类时,有没有办法不重新安装composer autoload?
我想调用helpers文件夹中的statics方法。 我已经尝试了很多tutos,但它总是只有一个文件。 我的配置/应用程序/助手/语言。php- composer.json app.php 我尝试的是: 添加自动加载类映射、HelpersServiceProviders类、命名空间(仅在刀片模板中工作,而不是在控制器中工作) 添加带或不带类映射、命名空间的自动加载psr-4 对于所有的方法,我需
我需要加载不同服务器上存在的类文件,并在类文件中执行方法。我不想使用超文本传输协议或RMI,但想应用这种方法。我正在看URLClassLoader,但没有得到任何地方。有人能给我一个从不同服务器加载类的例子吗?
我正在使用python 2.7. x和Boto API 2. X连接到AWS S3桶。我有一个独特的情况,我想从S3桶下载文件,从一个特定的目录/文件夹说。但问题是我想在S3文件夹中留下一个最新的文件,而不是下载它。一旦,我在我的本地框中下载这些文件,我想将这些文件移动到同一个桶下的不同文件夹说。以前有人处理过类似的情况吗? 以下是一些解释: 将下载的文件从S3存储桶移动到同一存储桶下的不同文件夹
我从我的IntelliJ Java 15 Gradle项目的resources文件夹中的子文件夹加载文件时遇到问题...