php - 在命名空间类中使用非命名空间类的最佳实践是什么

标签 php namespaces require autoloader

我正在使用 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();

    }
}

最佳答案

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

你可以使用我的自动加载器类: 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';

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

玩得开心!

关于php - 在命名空间类中使用非命名空间类的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817961/

相关文章:

ruby-on-rails - Rails lib 目录

api - Symfony2 FosRestBundle 根 api url

TypeScript 需要类型检查

javascript - 未定义 require - 创建目录中每个文件的数组

php - 如何让 PHPUnit 打印内部异常?

c++ - 实现或定义在未命名/匿名命名空间内声明的类或函数

c# - 您如何确保 .Net 始终从 namespace 树的根部搜索 namespace ?

php - preg_replace 内的 strtolower - 可能吗?

php - 无法在 PHP 中触发 SQL 请求

php - Laravel 错误 '; expected' 和 'Unexpected Unknown' 437 次