problem s projektem po update na Linux server

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wallkysek
Člen | 52
+
0
-

Zdravím, dělal jsem projekt na localhostu doma (W7-xampp-64bit), pak jsem ho hodil na linuxový server. Requirments checker hodil hlášku že je to v pohodě verze PhP 5.3.8 (majitel serveru říká že tam má 5.2).
Po spuštění aplikace mi ale vyhodí laděnka hlášku→ Parse Error syntax error, unexpected ‚[‘
u syntaxe ->

 switch ($this->getUser()->getRoles()[0]){
                   case 0:
                      $this->redirect('VendorWorkshop:default');
                    case 1:
...

když jsem tedy smazal ‚[0]‘, došlo k přesměrování na www/sign/in (ano to se má stát), ale pro změnu mám zase chybu že objekt nebyl nalezen. Někdo nějaké nápady?

mkoubik
Člen | 728
+
0
-

Php 5.3 nemá array dereferencing, takže takhle nemůžeš přímo přistupovat k návratové hodnotě metody. Musíš si to nejdřív uložit do proměnné.

$roles = $this->getUser()->getRoles();
switch ($roles[0]) {
...
wallkysek
Člen | 52
+
0
-

Dobře (i když zajímavé že na localhostu to dělalo přesně co mělo :D ) a ted este nejako vyresit problem s tim presmerovanim. Na homepage presenteru mam toto ->

if (!$this->getUser()->isLoggedIn()) {
           $this->redirect('Sign:in');
            }

přesměruje se na→ www/sign/in
opět na localhostu v pohodě funguje. Projekt mám tvořenej ze sandboxu. takže složky:
app->templates->Sign->in.latte

(děkuji za upozornení)

ještě radši doplním že na serveru jsou zřejmě některé fce vyplé ->

.htaccess file protection Disabled
File protection by .htaccess is not present. You must be careful to put files into document_root folder.

.htaccess mod_rewrite Disabled
Mod_rewrite is probably not present. You will not be able to use Cool URL.

Memcache extension Disabled
Memcache extension is absent. You will not be able to use Nette\Caching\Storages\MemcachedStorage.

Fileinfo extension or mime_content_type() Disabled
Fileinfo extension or function mime_content_type() are absent. You will not be able to determine mime type of uploaded files.

Editoval wallkysek (7. 8. 2013 18:20)

besanek
Člen | 128
+
0
-

Problém je s tímto.

.htaccess mod_rewrite Disabled
Mod_rewrite is probably not present. You will not be able to use Cool URL.

Řešení:

  1. Požádat hostéra o povolení mod_rewrite
  2. Přejít na rozumný hosting.
  3. Použít SimpleRouter

Nejlépe vyzkoušet v tomto pořadí.

EDIT:
Tohle je taky pěkná zhůvěřilost mít vyplé.

.htaccess file protection Disabled
File protection by .htaccess is not present. You must be careful to put files into document_root folder.

Editoval besanek (8. 8. 2013 11:50)

wallkysek
Člen | 52
+
0
-

Děkuji, nakonec jsem musel použít simplerouter, ve firmě mi bylo řečeno že ochranu fileů řeší jinak.