Edit report at http://bugs.php.net/bug.php?id=53800&edit=1
ID: 53800
User updated by: tommyhp2 at gmail dot com
Reported by: tommyhp2 at gmail dot com
Summary: namespace, interfaces and classes
-Status: Open
+Status: Closed
Type: Bug
Package: CGI related
Operating System: Windows 2008 R2
PHP Version: 5.3.5
Block user comment: N
Private report: N
New Comment:
sorry ... found my problem.
use org\puremvc\php\patterns\observer\Notifier;
\N >.> perhaps this should be a request changing \ to / to prevent
escaping?
Thanks for your time.
Previous Comments:
------------------------------------------------------------------------
[2011-01-20 23:53:12] tommyhp2 at gmail dot com
Description:
------------
The script works as expected when not using namespace. I get a fatal
error on my "class SimpleCommand extends Notifier implements ICommand,
INotifier" declaration.
Test script:
---------------
namespace org\puremvc\php\interfaces;
interface ICommand
{
function execute(INotification $notification);
}
interface INotifier
{
function sendNotification($notificationName, $body = null, $type =
null);
}
namespace org\puremvc\php\patterns\observer;
use org\puremvc\php\interfaces\INotifier;
class Notifier implements INotifier
{
public function __construct() { echo __METHOD__; }
public function sendNotification($notificationName, $body = null,
$type = null) { }
}
namespace org\puremvc\php\patterns\command;
use org\puremvc\php\interfaces\ICommand;
use org\puremvc\php\interfaces\INotifier;
use org\puremvc\php\patterns\observer\Notifier;
class SimpleCommand extends Notifier implements ICommand, INotifier
{
public function __construct() { parent::__construct(); echo ' -> ';
echo __METHOD__; }
function execute(INotification $notification) { }
}
echo '<br/>'; new \org\puremvc\php\patterns\observer\Notifier();
echo '<br/>'; new \org\puremvc\php\patterns\command\SimpleCommand();
Expected result:
----------------
org\puremvc\php\patterns\observer\Notifier::__construct
org\puremvc\php\patterns\observer\Notifier::__construct ->
org\puremvc\php\patterns\command\SimpleCommand::__construct
Actual result:
--------------
Fatal error: Declaration of
org\puremvc\php\patterns\command\SimpleCommand::execute() must be
compatible with that of org\puremvc\php\interfaces\ICommand::execute()
on line 21
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53800&edit=1