Поскольку здесь никто не говорил о выступлениях, вот небольшой тест, который я сделал (5.6):
Name | Time | Percent
----------|---------|---------
$this-> | 0.99163 | 106.23%
self:: | 0.96912 | 103.82%
static:: | 0.93348 | 100%
Это результаты для 2 000 000 прогонов, и вот код, который я использовал:
<?php
require '../vendor/autoload.php';
// My small class to do benchmarks
// All it does is looping over every test x times and record the
// time it takes using `microtime(true)`
// Then, the percentage is calculated, with 100% being the quickest
// Times are being rouned for outputting only, not to calculate the percentages
$b = new Tleb\Benchmark\Benchmark(2000000);
class Foo
{
public function calling_this()
{
$this->called();
}
public function calling_self()
{
self::called();
}
public function calling_static()
{
static::called();
}
public static function called()
{
}
}
$b->add('$this->', function () { $foo = new Foo; $foo->calling_this(); });
$b->add('self::', function () { $foo = new Foo; $foo->calling_self(); });
$b->add('static::', function () { $foo = new Foo; $foo->calling_static(); });
$b->run();
По-видимому, это больше проблема моего хоста, и я работаю с ними, чтобы решить эту проблему.
Спасибо, 1800.
Кстати, ответ здесь заключался в том, что мой хост, A2 Web Hosting, требует, чтобы SVN был обрабатывается через SSH с использованием public_key и настройки, в моем случае, TortoiseSVN для выполнения этой работы. Это было довольно забавно для тех, у кого есть небольшой опыт настройки ключей, но когда это было сделано, это было довольно приятно!
Если вы измените адрес оформления заказа с http://mywebsite.com/svn/myproject
на svn: //mywebsite.com/svn/myproject
, начинает работать? Если да, может быть, вы не настроили протокол HTTP для доступа к SVN?
Попробуйте поместить /
в конец URL-адреса. Измените адрес оформления заказа с « http://mywebsite.com/svn/myproject » на « http://mywebsite.com/svn/myproject/ ».
Мне тоже пришлось покопаться в этой проблеме, и я нашел следующие страницы, которые привели меня к решению: - http://comments.gmane.org/gmane.comp.version-control. subversion.devel / 117844 (См. особенно ссылку на «Патч Джулиана» .)
Утверждается, что «ВАРИАНТЫ
: 200 (
) ОК "ошибка вводит в заблуждение и часто означает, что URL-адрес репозитория неверен.
У меня сработала модификация первого ответа.
В моем репозитории используется SSH. URL-адрес был предоставлен мне как https: // (для доступа HTTPS), и в конце концов я понял, что протокол URL-адреса необходимо изменить.
Использование клиента командной строки: $ svn checkout svn + ssh: /// svnroot //
(Конфигурация ключа не требуется.)
У меня только что была эта проблема. Мой сервер Subversion был на нестандартном порту. Так что фактически URL моего репозитория был неправильным. Просто еще кое-что, чтобы проверить ...
У меня была похожая проблема с простой командой "svn list".
Чтобы расширить ответ Витора Матеуса относительно слэшей: При настройке моего собственного репозитория с помощью Apache на внутреннем сервере, мой оригинальный тег Location
в конфигурационном файле Apache 2 выглядел так:
<Location "/svn/repo_address/">
...
</Location>
Где после "repo_address" стоял косой знак "/" . Там не должно быть косой черты:
<Location "/svn/repo_address">
...
</Location>
Что-то тонкое, но это имеет огромное значение. Теперь обращение к
svn list http://my.server.com/svn/repo_address
работает нормально. Иногда полезно внимательно читать руководство ;-)