上周我学会了通过编写__autoload()函数将类包含在项目中.然后我了解到使用自动加载器不仅是一种技术,也是一种模式.
现在我在我的项目中使用自动加载器,我发现它非常有用.我想知道是否可以用功能做同样的事情.忘记在其中包含正确的PHP文件可能非常有用.
那么,是否可以创建一个功能自动加载器?
在我的WAMP框中,我做了以下事情:
Foo$autoload['libraries'] = array('foo');一切正常.当我上传到我的LAMP框时,我收到以下错误:
Unable to load the requested class: foo
/application/libraries/Foo.php的权限是0755.所有者与其他CI文件相同.以foo从自动加载出来,使问题消失.
什么想法可能是错的?
例如,我总是看到这样的自动加载器:
require_once __DIR__ . '/../vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
有什么区别和更简洁
require_once '../vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
?
您好我正在尝试使用SILEX微框架和我自己的库充满类,因此我遇到了2个加载器,导致加载器无法加载类的错误..是否有办法同时使用这2个加载器没有收到此错误?
我使用的装载机你可以在下面找到:
<?php
/*
* Loader
*/
function my_autoloader($className)
{
// haal de base dir op.
$base = dirname(__FILE__);
// het pad ophalen
$path = $className;
// alle paden samenvoegen tot waar ik zijn moet en de phpfile eraan plakken.
$file = $base . "/lib/" . $path . '.php';
// als file bestaat haal op anders error
if (file_exists($file))
{
require $file;
}
else
{
error_log('Class "' . $className . '" could not be autoloaded');
throw new Exception('Class "' . …Run Code Online (Sandbox Code Playgroud) php类Autoloader是否打开文件并检查类名?我一直在研究它是如何实际实现的.有一件事我知道它的递归?如果我错了请告诉我
如上所述:autoloader简介视图 PHP Autoloader的工作原理
PHP Autoloader在定义的目录中递归搜索类,特征和接口定义.在没有任何进一步配置的情况下,需求文件所在的目录将用作默认类路径.
文件名不需要遵守任何约定.搜索所有文件的类定义.与类名相似或以.php或.inc结尾的文件是首选.如果支持,PHP Tokenizer将用于可靠的类定义发现.
我是php新手,我想在我的代码中使用php5的__autoload功能.我在index.php中编写了下面的代码,但我不明白我应该如何以及何时调用__autoload函数.
function __autoload($class) {
if (file_exists($class . '.php')) {
include($class . '.php');
} else {
throw new Exception('Unable to load class named $class');
}
}
Run Code Online (Sandbox Code Playgroud)
我也见过这个帖子,但我的应用程序中没有这样的自动加载器类.每个应用程序是否需要单独的类才能使用自动加载?如果没有,我可以像上面这样的单一功能完成它的任务吗?任何人都可以解释如何在我的PHP代码中调用上面的__autoload函数?
我认为没有必要包括用于加载任何库等的作曲家.加载一些库并不是一项艰巨的任务.它很容易包括......
下载库> extract>放入您的项目>使用它
此任务每个项目只有一次.我的意思是它不是一遍又一遍.
更新也不是一件大事......只需下载并替换项目中的旧文件即可.
每个图书馆只需30秒.我没有看到任何理由在我的项目中再包含一层(作曲家).
另外,如果我们将这一层(作曲家)添加到我们的项目中,它会带来自己的问题.检查一下,看看有多少人处理作曲家错误; https://stackoverflow.com/search?q=composer+error
我想我忽略了一些事情.因为几乎每个人都使用作曲家并推荐.
你能告诉我我对作曲家的看法吗?它有什么好处?
有没有一个解决方案,我可以在需要时拥有JavaScript/jQuery自动加载依赖文件?例如,请考虑以下情况:
dialog()调用jQuery 插件.简单地试图限制带宽是否需要付出太多努力?我是否应该将所有核心文件包含在一个超级包中并完成它?
感谢您的时间.
我正在尝试将Alias注册到一个类,但是Laravel无法找到该类,我可以直接在我的控制器中引用该类,所以我知道它正确加载了.
这是我的代码:
'aliases' => array(
'FrontendAssets' => 'Lib\FrontendAssets',
)
Run Code Online (Sandbox Code Playgroud)
我正在尝试为其制作别名的课程
class FrontendAssets
{
/**
* Styles array to include on every admin page
* @var array
*/
protected static $styles = [];
/**
* Scripts array to include on every admin page
* @var array
*/
protected static $scripts = [];
public static function styles()
{
return static::assets(static::$styles);
}
public static function addStyle($style)
{
static::$styles[] = $style;
}
public static function scripts()
{
$scripts = static::assets(static::$scripts);
return $scripts;
}
public …Run Code Online (Sandbox Code Playgroud) 经过一些研究,无法找到解决问题的方法.我正在使用API,这是我通过composer下载的命名空间.API让它依赖于我允许作曲家为我管理和自动加载.与此分开,我有大约10个类,我已经使用php自动加载spl_autoload_register.最近,我开始混合这些类来完成一个项目的部分,整个事情已经变成了废话.我的自定义类不能使用作曲家类,反之亦然.有没有一种方法可以用来自动加载两个独立文件夹中的类,并加载两个独立的外载程序.
这是我目前使用的代码.vender/autoload.php与典型的作曲家自动加载器没有什么不同.谢谢你的帮助.
require 'vendor/autoload.php';
require 'functions/general.php';
require 'include/mailgun.php';
function my_autoloader($class) {
require 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
Run Code Online (Sandbox Code Playgroud) autoloader ×10
php ×9
autoload ×2
class ×2
composer-php ×2
alias ×1
codeigniter ×1
function ×1
javascript ×1
jquery ×1
jquery-ui ×1
laravel ×1
loader ×1