Callback ‚Model\BaseModel::initialize()‘ is not callable
- Royce
- Člen | 15
Ahoj, nějak nemlžu přijít na to, proč pořád dostávám hlášku
Callback ‚Model\BaseModel::initialize()‘ is not callable.
Snažím se pomocí ACL tutoriálu rozchodit aplikaci, ale tady mi to havaruje.
Cesta vč. namespace je imho dobře.
v bootstrapu mám
$application->onStartup[] = 'Model\BaseModel::initialize()';
a BaseModel
namespace Model;
use Nette\Object;
use Nette\Environment;
use Nette\Database\Connection;
class BaseModel extends Object {
/** @var Nette\Database\Connection */
protected static $connection = null;
public static function initialize()
{
$dbConfig = Environment::getConfig('database');
self::$connection = new Connection(
"{$dbConfig->driver}:host={$dbConfig->host};dbname={$dbConfig->database}",
$dbConfig->username,
$dbConfig->password
);
}
}
Nette 2.0 revision 539fdec
Díky za tipy
- Royce
- Člen | 15
taky ne :-(
//edit: to skoro vypadá jako by ho neviděl robotloader.. když siv laděnce najedu includované soubory, tak tam není
ale měl by.. conf:
service:
Nette\Loaders\RobotLoader:
option:
directory: [%appDir%]
directory: [%libsDir%]
run: true
Editoval Royce (19. 4. 2011 0:04)
- Filip Procházka
- Moderator | 4668
Co to řve takhle?
$application->onStartup[] = callback('\\Model\\BaseModel', 'initialize');
Hele teď koukám, že to připojuješ do application, to máš jako v bootstrap? A máš ten BaseModel v App a máš tam správně zaindexovaný robotloader?
Co ti vypíše, když vložíš tohle před ten řádek s
$application->onStartup[]
dump(class_exists('Model\BaseModel')); die('e?');
?
- Kyslik
- Člen | 15
Rad se pripojim se stejnym problemem.
<?php
dump(class_exists('Model\BaseModel')); die('e?');
?>
Vypisuje FALSE, ale trida samotna v adresarove strukture je: /app/models/BaseModel.php
<?php
namespace Model;
use Nette\Object,
Nette\Environment,
Nette\Database\Connection;
class BaseModel extends Object
{
/** @var Nette\Database\Connection */
protected static $connection = null;
public static function initialize()
{
$dbConfig = Environment::getConfig('database');
self::$connection = new Connection(
"{$dbConfig->driver}:host={$dbConfig->host};dbname={$dbConfig->database}",
$dbConfig->username,
$dbConfig->password
);
}
}
?>
V Configu:
common:
php:
date.timezone: Europe/Prague
session.save_path: „%tempDir%/sessions“
service:
Nette\Loaders\RobotLoader:
option:
directory: [%appDir%]
directory: [%libsDir%]
run: true
Nette\Security\IAuthorizator: AclProj\Security\Acl
Nette\Security\IAuthenticator: AclProj\Security\Authenticator
database:
driver: mysql
host: localhost
database: ***
username: ***
password: ***
security:
salt: ***
production < common:
development < common:
Stale jedna a ta sama chyba. Povedlo se to nekomu rozchodit?