Hallo, i got an
"PHP Fatal error: Uncaught Error: Class 'fhac\idm\sva2idm\Config\Config' not found in /opt/sva2idm/app/cli.php:79"
while using Phalcon\Loader. The reason is that the searchpath used by the Loader removes the leading character from the path.
Phpinfo
phalcon
Web framework delivered as a C-extension for PHP
phalcon => enabled
Author => Phalcon Team and contributors
Version => 3.1.2
Build Date => Apr 6 2017 14:16:21
Powered by Zephir => Version 0.9.7-1fae5e50ac
Directive => Local Value => Master Value
phalcon.db.escape_identifiers => On => On
phalcon.db.force_casting => Off => Off
phalcon.orm.cast_on_hydrate => Off => Off
phalcon.orm.column_renaming => On => On
phalcon.orm.enable_implicit_joins => On => On
phalcon.orm.enable_literals => On => On
phalcon.orm.events => On => On
phalcon.orm.exception_on_failed_save => Off => Off
phalcon.orm.ignore_unknown_columns => Off => Off
phalcon.orm.late_state_binding => Off => Off
phalcon.orm.not_null_validations => On => On
phalcon.orm.virtual_foreign_keys => On => On
Composer PSR4 Autoloader
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'fhac\\idm\\sva2idm\\' => array($baseDir . '/app'),
'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'),
'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
'Psy\\' => array($vendorDir . '/psy/psysh/src/Psy'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'Phalcon\\' => array($vendorDir . '/phalcon/devtools/scripts/Phalcon'),
);
Loader
$loader = new Loader();
$loader->registerNamespaces(require __DIR__ . '/../vendor/composer/autoload_psr4.php');
$eventsManager = new EventsManager();
$eventsManager->attach("loader:afterCheckClass", function (Event $event, Loader $loader)
{
echo print_r($loader->getNamespaces());
echo $loader->getCheckedPath();
echo "\n";
}
);
$loader->setEventsManager($eventsManager);
$loader->register();
Calling:
use fhac\idm\sva2idm\Config\Config;
$config = new Config();
Output:
Array
(
[fhac\idm\sva2idm\] => Array
(
[0] => /opt/sva2idm/app
)
.
.
.
)
CheckedPath: /opt/sva2idm/app/onfig/Config.php
Now the leading C of Config is missing: /opt/sva2idm/app/onfig/Config.php.