标签: autoloader

自动包含/要求所有目录下的所有文件

我想自动include/require所有.php目录下的所有文件.例如:

(目录结构)

-[ classes
    --[ loader (directory)
        ---[ plugin.class.php
    --[ main.class.php
    --[ database.class.php
Run Code Online (Sandbox Code Playgroud)

我需要一个自动加载所有文件的函数 .php

我尝试了各种各样的:

$scan = scandir('classes/');
foreach ($scan as $class) {
    if (strpos($class, '.class.php') !== false) {
        include($scan . $class);
    }
}
Run Code Online (Sandbox Code Playgroud)

php autoloader

3
推荐指数
1
解决办法
9291
查看次数

Codeigniter无法在IIS中工作

好的,我有一个codeigniter应用程序.它在localhost中工作正常,在我得到的PHP托管中工作正常.但我的客户希望它在IIS中运行.我已经过了web.config陷阱,但现在我收到以下错误:

遇到了未被捕获的异常

类型:例外

消息:会话:PHP进程无法写入已配置的保存路径'c:\ windows\temp'.

文件名:E:\ home\emconexao.com\site3\system\libraries\Session\drivers\Session_files_driver.php

行号:124

我知道这是一个PHP配置问题,但在哪里?

在我的application/config/autoload.php文件中,如果我session从库中删除它工作......直到我登录该网站,然后显然它无法生成会话,它崩溃...

谁能帮我?

php iis session codeigniter autoloader

3
推荐指数
1
解决办法
1万
查看次数

class_exists正在调用spl_autoload_register

我创建的自动加载类的简单脚本,但是当我使用class_existsspl_autoload_register是执行,例如:

<?php
function autoLoadClass($name) {
    echo 'spl_autoload_register: ', $name, '<br>';
}

spl_autoload_register('autoLoadClass');

class_exists('Foo');
class_exists('Bar');
class_exists('Foo\\Bar');
Run Code Online (Sandbox Code Playgroud)

输出:

spl_autoload_register:Foo
spl_autoload_register:Bar
spl_autoload_register:Foo\Bar

是对的吗?有没有办法让"spl_autoload"忽略调用"class_exists"?

php spl autoloader spl-autoload-register

3
推荐指数
1
解决办法
1603
查看次数

Composer给出错误,"找不到类"

我正在使用Windows 10.在src根目录中创建文件夹后,我在其中创建了两个文件.

目录结构(运行前composer install):

?
??? composer.json
??? run.php
?
??? src
     ??? childclass.php
     ??? parentclass.php
Run Code Online (Sandbox Code Playgroud)

根目录中的两个文件:

composer.json:

{
    "name": "myvendor/mypackage",
    "description": "nothing",
    "authors": [
        {
            "name": "Omar Tariq",
            "email": "XXXXX@gmail.com"
        }
    ],
    "require": {},
    "autoload": {
        "psr-4": {
            "myns\\": "src/"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

run.php:

<?php

require_once __DIR__ . '/vendor/autoload.php';

use myns\childclass as childclass;

$childclass = new childclass();
$childclass->abc();
Run Code Online (Sandbox Code Playgroud)

src文件夹中的两个文件:

childclass.php:

<?php

require_once 'parentclass.php';

use myns\parentclass as parentclass;

class childclass extends parentclass
{
    public function abc() …
Run Code Online (Sandbox Code Playgroud)

php namespaces autoloader composer-php psr-4

3
推荐指数
1
解决办法
7500
查看次数

使用Zend_Autoloader进行模型

有人知道如何使用"新"Zend Autoloader加载模型吗?在Moment中,我的配置如下所示:

的application.ini

# Autoloader Namespace
autoloadernamespaces.0 = "Sl_"
Run Code Online (Sandbox Code Playgroud)

bootstrap.php中

   /**
     * Start Autoloader
     *
     * @access protected
     * @return Zend_Application_Module_Autoloader
     */
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Sl_',
            'basePath'  => dirname(__FILE__),
        ));

        return $autoloader;
    } 
Run Code Online (Sandbox Code Playgroud)

所以当我在/Models/User.php中放置一个模型时

class Sl_Model_User{}
Run Code Online (Sandbox Code Playgroud)

并创建一个新对象,一切都像设计的一样.但是如何使用Autoloader加载位于/Models/Dao/UserDB.php中的模型?

class Dao_UserDB{}
Run Code Online (Sandbox Code Playgroud)

php zend-framework autoloader

2
推荐指数
1
解决办法
5785
查看次数

Custom Composer Autoloader

无论如何使用Composer的自定义自动加载器?

我有一些包含数百个类的库,它们按照PSR-0布局在目录结构中.

但是它们还包括一个静态构造函数(类似于Java的静态初始化程序).

我在编剧之前使用的自动加载器会:

if (method_exists($class, '__static')) {
    call_user_func(array($class, '__static'));
}
Run Code Online (Sandbox Code Playgroud)

那么有没有扩展Composers默认自动加载器也这样做呢?

php static constructor autoloader composer-php

2
推荐指数
1
解决办法
2759
查看次数

jQuery html()使用?_ = 1365695139815获得Javascript(.js)

当我收到包含<script src="some-file.js"></script>以下示例的网址时:

<html>
<script>
$(document).ready(function(){
    $.get('/some-url', function(r) {
        $('#html-container').html(r); // Contains: <script src="some-file.js"></script>
    });
});
</script>

<body>
<div id="html-container"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

如前所述,此some-file.js结果来自/some-urljQuery将自动添加?_={random number}到查询字符串中的结果。

结果请求:GET some-file.js?_=1365695139815

如何从html()解析的自动加载中禁用此随机请求追加?

@编辑

由于我无法发出请求,这是因为它们是通过html解析执行的,有了Brian的回答,我找到了一个简单的解决方案:

$.ajaxSetup({
    // Enable caching of AJAX responses
    cache: true
});
Run Code Online (Sandbox Code Playgroud)

如何设置缓存中找到:jQuery.get调用中为false

jquery html-parsing autoloader

2
推荐指数
1
解决办法
793
查看次数

未加载自动加载器类“ Zend \ Loader \ ClassMapAutoLoader”

我正在使用PHP 5.5.12编写Zend Framework 2.3.1应用程序

我的应用程序包含几个模块,在每个模块的Module.php中,我都有

public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\ClassMapAutoLoader' => array(
            __DIR__ . '/autoload_classmap.php'
        ),
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
        ),
    );
}
Run Code Online (Sandbox Code Playgroud)

这是我看到的唯一与ClassMapAutoLoader相关的指示。

当我尝试运行该应用程序时,我得到:

Fatal error: Uncaught exception 'Zend\Loader\Exception\InvalidArgumentException' with message 'Autoloader class "Zend\Loader\ClassMapAutoLoader" not loaded' in /mnt/storage/home/ufk/work-projects/global-logic/project/xpogames/vendor/zendframework/zendframework/library/Zend/Loader/AutoloaderFactory.php on line 85
Run Code Online (Sandbox Code Playgroud)

有什么主意吗?

php autoloader zend-framework2

2
推荐指数
1
解决办法
1985
查看次数

PHP自动加载器类从两个或三个不同的路径加载文件

我正在学习使用php autuoloader...
据我所知,我们可以使用__autoloaderspl_autoloader_*自动加载文件.
假设这是我的目录结构:

ROOT
  |
  |
  ADMIN
  |  |
  |  |
  |  DIST
  |     |
  |     SOME_FOLDER
  |     SOME_FOLDER
  |  TPL
  |     |
  |     |
  |     SOME_FOLDER1
  |           |
  |           test.php
  |     SOME_FOLDER2
  |           |
  |           example1.php
  |           example2.php
  |           example3.php
  |
  |
  CLASSES
       |
       basics.php
       class1.php
       class2.php
       class3.php
       class4.php
  |
  index.php
Run Code Online (Sandbox Code Playgroud)


我为CLASSES目录中的自动加载文件创建了这个类:

basics.php:

class MyAutoLoader
{

    public function __construct()
    {

            spl_autoload_register( array($this, 'load') );

    }




    function load( $file )
    {
        //spl_autoload( …
Run Code Online (Sandbox Code Playgroud)

php autoloader

2
推荐指数
1
解决办法
7402
查看次数

如何在laravel中要求作曲家自动加载器?

我想安装guzzle https://github.com/guzzle/guzzle

我阅读了参考资料,但我对此部分感到困惑:

在此输入图像描述

从该教程,请求要求composer autoloader.所以似乎需要添加require 'vendor/autoload.php'; 我添加脚本的位置?

我使用laravel 5.6

autoloader laravel guzzle laravel-5 laravel-5.6

2
推荐指数
1
解决办法
376
查看次数