я изучаю кое-что о RedBean PHP ORM и добавляю код, загруженный из http://www.redbeanphp.com/downloadredbean.php, в автозагрузку моего проекта с помощью команды composer dump-autoload и конфигурации composer. json 'в каталоге root:
{
"autoload": {
"classmap": [
"vendor/redbeanphp/src/rb.php",
"vendor/myowncode/src/Model.php"
]
}
}
в' vendor / composer / Установлено. json 'Я положил это:
[
{
"name": "gabordemooij/redbean",
"version": "5.4",
"require": {},
"autoload": {
"psr-4": {"RedBeanPHP\\": "src"}
}
},
"name": "myowncode/src",
"version": "1.0",
"require": {},
"autoload": {
"psr-4": {"MyCode\\": "src"}
}
}
]
и все работает нормально, по крайней мере, пока я не попробую пример из сети RedBean о «Моделях» и коде:
<?php
require 'vendor/autoload.php';
class Model_Band extends RedBean_SimpleModel {
public function update() {
if ( count( $this->bean->ownMember ) >4 )
throw new Exception( 'Too many members!' );
}
}
приведет к ошибке:
PHP Fatal error: Cannot declare class RedBeanPHP\RedException, because the name is already in use in /opt/lampp/htdocs/testing/vendor/redbeanphp/src/rb.php on line 8358
Fatal error: Cannot declare class RedBeanPHP\RedException, because the name is already in use in /opt/lampp/htdocs/testing/vendor/redbeanphp/src/rb.php on line 8358
, но если я не использую автозагрузку и не это:
require 'vendor/redbean/src/rb.php';
class Model_Band extends RedBean_SimpleModel {
public function update() {
if ( count( $this->bean->ownMember ) >4 )
throw new Exception( 'Too many members!' );
}
}
это работает, но я хочу, чтобы это работало с автозагрузкой, я знаю, я могу просто открыть файл composer. json и добавить имя пакета ("gabordemooij / redbean": "dev-master"), но я хочу больше узнать об автозагрузке и получить хорошее представление о том, что не так в моей конфигурации / коде.