Я использовал Комбинацию однажды, которая казалась очень хорошей, и я могу пробовать чаще. vimdiff работает хорошо, если Вы знаете энергию хорошо. Наконец я упомянул бы, что нашел, что xxdiff делает разумное задание для быстрого сравнения. Существует много различных программ там, которые делают хорошее задание.
Class1 не входит в глобальную область видимости.
См. Ниже рабочий пример:
<?php
function __autoload($class)
{
$parts = explode('\\', $class);
require end($parts) . '.php';
}
use Person\Barnes\David as MyPerson;
$class = new MyPerson\Class1();
Edit (2009-12-14):
Чтобы уточнить, я использую «использовать ... как» было для упрощения примера.
Альтернатива была следующая:
$class = new Person\Barnes\David\Class1();
или
use Person\Barnes\David\Class1;
// ...
$class = new Class1();
Ваша функция __ autoload
получит полное имя класса, включая имя пространства имен.
Это означает, что в вашем случае __ autoload
функция получит ' Person \ Barnes \ David \ Class1
', а не только ' Class1
'.
Итак, вам нужно изменить свой код автозагрузки, чтобы иметь дело с таким «более сложного» имени; часто используемое решение - организовать ваши файлы, используя один уровень каталогов на «уровень» пространств имен, и при автозагрузке заменить ' \
' в имени пространства имен на DIRECTORY_SEPARATOR
.