Modulova aplikace – asi nekde spatna routa
- webdata
- Člen | 153
Zdravím.
Takže jsem si načrtl základní strukturu aplikace a jaxi taxi jsem se bloknul zřejmě na routovaní.
Pokud zadám adresu www.domena.cz nebo www.domena.cz/o-nas.html, tak by se mela provadet aplikace v adresáři user. To funguje dle nastavene routy v pohodě. Ale pokud zadám www.domena.cz/admin tak by se měla provádět aplikace v adresáři admin, zde je však problém a laděnka vyhazuje 404. Za adresarovou strukturou si stojim. Maximalne lze jeste hodit modululy v admin adresaři do složky admin/module/.
Předem dík za radu.
Příloha:
Soubor
- webdata
- Člen | 153
jj, dík jak fík, taky jsem se mohl líp podívat do example v distribuci.
Takže v DefaultPresenter.php teď mám:
class One_DefaultPresenter extends Presenter {
public function renderDefault() {
echo 'OneModule';
$this->terminate();
}
}
Takže když zadám www.domena.cz/admin tak to funguje v pohodě. Ale pokud se pokusím zavolat www.domena.cz/one.default tak laděnka hlásí No route for HTTP request.
Funguje to pouze pokud v ROOT adresáři aplikace v .htaccess přepsat:
RewriteBase /moduleskeleton
na
RewriteBase /moduleskeleton/admin/
Což je pro mne nepřípustné.
- webdata
- Člen | 153
Takže asi zřejmě vyřešeno přes .htaccess
# disable directory listing
Options -Indexes
# mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /moduleskeleton/
# ADMINISTRACNI ROZHRANI
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/(.*)$ admin/index.php/$1 [L]
RewriteRule ^admin/$ admin/index.php [L]
RewriteRule ^admin$ admin/index.php [L]
# NORMALNÍ STRÁNKY
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
Ale pokud má někdo jiné řešení, budu rád když se podělí.
- westrem
- Člen | 398
No staci jedine, postni sem ako mas definovane routy, moj tip – stavim sa,
ze mas definovanych len par rout, kde kazda obsahuje v poli defaults parameter
module
definovany pre iny modul a nie admin.
Ono v tom pripade sa totiz routy spravaju inak ako by clovek cakal (neintuitivne) (David uz o tom probleme vie) a dany module v definicii beju ako restriction, takze sa ti nenapasuje ziadna routa.
Istotne to nie je potrebne riesit cez .htaccess podla mna.
- webdata
- Člen | 153
jj, pravdu díš, ty routy fungují nějak divně, bral jsem je jako regularni vyrazy v .htaccess, ale chovají se trosku jináč.
Jinak už mám hotový skeleton. Takže teď je to tak, že moduly jsou v adresáři modules. Kde každý modul má svuj model, presenter, templates, a nebo dědí presenter, model, templates z nadřazené složky.
Je to jen hrubý nástřel, ale pokud to někdo vezme jako základ, tak si myslím že to je použitelné. Já osobně to stejně ještě doupravím, podle obrazu svého, protože modulární aplikace je pro mne akutně důležitá (přehledná/pro práci v týmu dobrá) věc.