PHP - 使用 composer autoloader 扩展 类 导致重新声明错误
PHP - Extend classes using composer autoloader causes redeclare error
我正在学习如何为我自己使用 Composer 类。
所以我有这个目录结构
我正在使用 PHP 版本 5.5.30 和 Composer 1.1.0
- Pdf
- test.php
- composer.json
- vendor/
- autoload.php
- jarouche/
- jarouche.php
- jarouche2.php
所以,我有
test.php
<?php
require_once('vendor/autoload.php');
use jarouche\jarouche2;
$teste = new jarouche2();
$teste->teste();
?>
jarouche.php
<?php
namespace jarouche;
class jarouche{
public function teste(){
echo 'jarouche';
}
}
?>
jarouche2.php
<?php
namespace jarouche;
class jarouche2 extends jarouche{
public function teste(){
echo 'jarouche2';
}
}
?>
composer.json
{
...
"autoload": {
...
"psr-4": {"jarouche\": "vendor/jarouche"
}
}
But, when I run test.php I got this error "Fatal error: Cannot redeclare class jarouche\jarouche2 in C:\xampp\htdocs\Pdf\vendor\jarouche\jarouche2.php on line 6"
我试过 if (!class_exists('MyClass')) in jarouche2.php
,尝试更新作曲家...没有任何效果。
我的错误是什么?
出于某种原因,我进行了作曲家自我更新,现在可以使用了!
我正在学习如何为我自己使用 Composer 类。 所以我有这个目录结构
我正在使用 PHP 版本 5.5.30 和 Composer 1.1.0
- test.php
- composer.json
- vendor/
- autoload.php
- jarouche/
- jarouche.php
- jarouche2.php
所以,我有
test.php
<?php
require_once('vendor/autoload.php');
use jarouche\jarouche2;
$teste = new jarouche2();
$teste->teste();
?>
jarouche.php
<?php
namespace jarouche;
class jarouche{
public function teste(){
echo 'jarouche';
}
}
?>
jarouche2.php
<?php
namespace jarouche;
class jarouche2 extends jarouche{
public function teste(){
echo 'jarouche2';
}
}
?>
composer.json
{
...
"autoload": {
...
"psr-4": {"jarouche\": "vendor/jarouche"
}
}
But, when I run test.php I got this error "Fatal error: Cannot redeclare class jarouche\jarouche2 in C:\xampp\htdocs\Pdf\vendor\jarouche\jarouche2.php on line 6"
我试过 if (!class_exists('MyClass')) in jarouche2.php
,尝试更新作曲家...没有任何效果。
我的错误是什么?
出于某种原因,我进行了作曲家自我更新,现在可以使用了!