Edit report at https://bugs.php.net/bug.php?id=60955&edit=1
ID: 60955
User updated by: frederic dot hardy at mageekbox dot net
Reported by: frederic dot hardy at mageekbox dot net
Summary: spl_autoload_register() accept a protected method
Status: Open
Type: Bug
Package: SPL related
Operating System: Linux
PHP Version: 5.3.9
Block user comment: N
Private report: N
New Comment:
All my apologize, my bug report is not very clear.
My problem is that the error message is throwed only if spl_autoload_register()
was called outsite a class.
A call to autoloader::register() does not throw any error message, even if
autoloader::requireClass(), a protected method, is used.
Previous Comments:
------------------------------------------------------------------------
[2012-02-04 16:06:14] php-dev at zerocue dot com
This report is requesting a change in the error output? It already doesn't
allow
the protected member to be registered as your actual result indicates, it
throws
an error.
What is this report about?
------------------------------------------------------------------------
[2012-02-02 14:02:59] frederic dot hardy at mageekbox dot net
Description:
------------
It's possible to register a protected method as an autoloader callback with the
function spl_autoload_register().
Test script:
---------------
<?php
class autoloader
{
function register()
{
spl_autoload_register(array($this, 'requireClass'));
}
protected function requireClass() {}
}
$autoloader = new autoloader();
$autoloader->register();
$autoloadFunctions = spl_autoload_functions();
foreach ($autoloadFunctions as $autoloadFunction)
{
spl_autoload_unregister($autoloadFunction);
}
foreach ($autoloadFunctions as $autoloadFunction)
{
spl_autoload_register($autoloadFunction);
}
Expected result:
----------------
Cannot register the protected method autoload::requireClass() as a callback
Actual result:
--------------
Passed array does not specify a callable method (cannot access protected method
autoloader::requireClass())
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60955&edit=1