Určitě nebudu sám, koho štvou nejrůznější komplikace při přesunu projektu z localu na hosting.
Rád bych se zde podělil o jednu zkušenost, která snad někomu usnadní práci a případně někdo poradí, jak a co udělat lépe.
Tedy problém byl, že na hostingu nebyla knihovna php_pdo_mysql. Na locale ,kde tuto knihovnu mám, mi vše s NetteDatabase jelo v pohodě, ale na locale jsem se nemohl k DB připojit.
Něco jsem pročetl na fórech a zjistil jsem, že snad s dibi by neměl být problém.
Tedy jsem si config.neon a authenticator musel přepsat pro dibi. Zde jsou:
config.neon
common: php: date.timezone: Europe/Prague services: database: class: DibiConnection arguments: [ {driver: %database.driver%, charset: utf8, hostname: %database.host%, username: %database.user%, password: %database.password%, database: %database.dbname%, persistent: true, lazy: true} ] authorizator: class: AclProjSecurityAcl authenticator: class: AclProjSecurityAuthenticator arguments: [@database, %security.salt%] development < common: parameters: database: driver : mysql host : localhost dbname : ... user : ... password: ... security: salt: zb1g7IHt1I production < common: parameters: database: driver : mysql host : localhost dbname : ... user : ... password: ... security: salt: zb1g7IHt1I |
Authenticator.php
db = $dbConnection; $this->passwordSalt = $salt; } public function authenticate(array $credentials) { $email = $credentials[self::USERNAME]; $password = sha1($credentials[self::PASSWORD] . $this->passwordSalt); $user = $this->db ->select('*') ->from('user') ->where('email=%s', $email) ->fetch(); if (!$user) { throw new AuthenticationException("User with login email '$email' not found", self::IDENTITY_NOT_FOUND); } if ($user->password != $password) { throw new AuthenticationException('Wrong password', self::INVALID_CREDENTIAL); } $identity = new Identity($user->id, $user->role); $identity->name = $user->name; $identity->email = $user->email; return $identity; } } |
Snad to pomůže, nakopne, inspiruje a hlavně zkrátí někomu dalšímu ztracený čas. Musel jsem také upravovat všechny dotazy na DB v modelu pro dibi. Nonaštěstí jsem toho neměl moc.
Moc se v tomto neorientuji, tak budu rád za jakoukoliv dobrou radu do budoucna a případnou debatu na toto téma.