1

我正在使用 PHP 在最近更新中实现的美妙的新命名空间特性创建一个库。但是,我需要在我的一个类中使用 simple_html_dom.php 类。我正在使用符合标准 PSR-0 的自动加载器类,但由于下划线,在尝试创建 simple_html_dom 类的新对象时出现错误。

在查看我的自动加载器类时,它用下划线代替了重击。这很容易解决,但我担心它可能会破坏我的 PSR-0 合规性。我想知道解决遗留库的此类问题的最佳实践是什么。

目录结构

- vendor/
  - MyStuff/
    - lib/
      - simple_html_dom.php
    - MyClass1.php

MyClass1.php

<?php
namespace MyStuff;

// This require works
require(__DIR__ . '/lib/simple_html_dom.php');

class MyClass1 {

    public function __construct() {
         // This breaks
         // Warning: require(C:\www\vendor\LoU\simple\html\dom.php): failed to open stream
         $html = new simple_html_dom();

    }
}
4

1 回答 1

2

给出这个 - 自我广告 - 回答只是因为你告诉我这样做。:)

您可以使用我的自动加载器类:Jm_Autoloader. (你在评论中告诉它对你有用)

它旨在OLD_SCHOOL_CLASS_NAMES\new\school\class\Names两种风格混合使用。

使用 PEAR 很容易安装:

pear channel-discover metashock.de/pear
pear channel-update metashock
pear install metashock/Jm_Autoloader

在您的主要 php 脚本之上,只需添加:

require_once 'Jm/Autoloader.php';

大多数情况下就是这样。如果没有,有些选项我不会在这里描述,因为它不属于这里。

玩得开心!

于 2013-11-06T18:56:26.017 回答