Struktura adresářů pro backend a frontend
- iskejp
- Člen | 41
Zdravím,
bylo by možné pomoci s návrhem adresářové struktury pro malý CMS? Nevím přesně jak rozložit backend a frontend webu. Pokud je již někde nějaké vlákno toto popisující, budu za něj rád.
Také by mě zajímalo jak řešit index.php, který by měl zobrazit úvodní stránku frontend webu a až po kliknutí na odkaz přesunout uživatele na přihlášení do správy.
Díky za odpovědi.
- besir
- Člen | 170
Ahoj,
no já osobně a myslím si, že to tak bylo i zamýšleno používám index
jeden. Vše ostatní vyřeší routy.
Moje adresářová struktura je následující:
http://imageshack.us/…26at144.png/
A bootstrap:
(podotýkám, že routy jsou zatím experimentální)
<?php
/**
* My Application bootstrap file.
*/
use Nette\Diagnostics\Debugger;
use Nette\Environment;
use Nette\Application\Routers\Route;
use Nette\Security\Diagnostics\UserPanel;
// Load Nette Framework
require LIBS_DIR . '/Nette/loader.php';
// Configure application
$configurator = new Nette\Config\Configurator;
// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode($configurator::AUTO);
$configurator->enableDebugger(__DIR__ . '/../log');
// Enable RobotLoader - this will load all classes automatically
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(APP_DIR)
->addDirectory(LIBS_DIR)
->addDirectory(__DIR__.'/helpers')
->register();
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
// Add Dibi extension for Nette
$configurator->onCompile[] = function ($configurator, $compiler) {
$compiler->addExtension('dibi', new DibiNetteExtension);
};
// Create DI Container
$container = $configurator->createContainer();
$configurator->createRobotLoader()->addDirectory(dirname(__FILE__))->register();
// Connection to DB
dibi::connect($container->params['database']);
// Setup router
$container->router[] = new Route('index.php', 'Front:Homepage:', Route::ONE_WAY);
$container->router[] = new Route('/admin[/<presenter>][/<action>][/<id>]', array(
'module' => 'admin',
'presenter' => 'sign',
'action' => 'in',
));
$container->router[] = new Route('<presenter>/<action>[/<id>]', array(
'module' => 'front',
'presenter' => 'homepage',
'action' => 'default'
));
// Configure and run the application!
$container->application->run();
- Jan Endel
- Člen | 1016
Mě osobně se víc líbí varianta, kterou naznačil vrtak-cz na svém blogu a hlavní myšlenka je vypíchnuta ve variantě 2) v tomto příspěvku Protože pak mám veškerou logiku pracující třeba s články v jedné složce + je jednoduché udělat BasePresenter, ze kterého oba dědí a který třeba implementuje výpis článků.