gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:54:55 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com