doctrine / orientdb-odm

A set of PHP libraries in order to use OrientDB from PHP
http://odino.org/blog/categories/orientdb/
MIT License
155 stars 54 forks source link

Can't inherit abstract function Doctrine\OrientDB\Binding\BindingInterface::execute() (previously declared abstract in Doctrine\OrientDB\Binding\HttpBindingInterface #160

Closed sakuraiyuta closed 11 years ago

sakuraiyuta commented 11 years ago

I'm using 1.0.0-beta6 in composer.

include autoload.php and execute the code below:

$parameters = Doctrine\OrientDB\Binding\BindingParameters::create('http://admin:admin@localhost:2480/school-manager'); $orient = new Doctrine\OrientDB\Binding\HttpBinding($parameters); $output = $orient->query("SELECT FROM Address");

(the code is refered from readme in GitHub)

then, occurs the error:

Can't inherit abstract function Doctrine\OrientDB\Binding\BindingInterface::execute() (previously declared abstract in Doctrine\OrientDB\Binding\HttpBindingInterface)

in Binding/BindingInterface.php, function execute is declared as abstract-method. and, in Binding/HttpBindingInterface.php, execute is declared too.

PHP not allows declaring "same named" abstract-method in sub-class, isn't it?

nrk commented 11 years ago

That's an oversight on our end since Doctrine\OrientDB\Binding\BindingInterface and Doctrine\OrientDB\Binding\HttpBindingInterface share a common method which doesn't make much sense given that the latter extends the former. Most likely you are running on PHP <= 5.3.8 while we generally use newer versions of the interpreter and that's why we haven't noticed this error. The behaviour of raising errors when two interfaces share a common method changed starting from PHP >= 5.3.9: in versions prior to that release, PHP raises errors in such cases but with later releases it's accepted (it's still not clear if that was an intentional change though).

You should always include the version of PHP when reporting issues as pointed in our CONTRIBUTING.md file that gets automatically linked on top of the form when opening new issues, this is one of such cases proving how important it is to give us as much information as possibile.

sakuraiyuta commented 11 years ago

thanks for responding! I understood it. sorry that issues not including needed info. next, I'll refer to CONTRIBUTING.md and write these items.

nrk commented 11 years ago

@sakuraiyuta don't worry, this one was quick to spot anyway after noticing, it's just to make things easier for us which in turn makes things quicker to fix and everyone benefits from that :-) Thanks for the report.

odino commented 11 years ago

protip: @sakuraiyuta, in generate, Id go for the latest master - instead of beta-6 - since we're still on a big WIP on the library

also, we had some major bugfixes lately

sakuraiyuta commented 11 years ago

@nrk thanks! I think the library for my main project. if find problems, I'll post a detailed explaination.(of course, with suggestions to fix, if I have)

@odino I read commit-log,..many features added in master. okey, I'll try the latest code. and thank you posting link. looks good for learning orientdb-odm. I'm using FuelPHP, not symfony, but the article is very useful.