Struktura adresářů pro backend a frontend

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

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
+
0
-

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
+
0
-

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ů.

iskejp
Člen | 41
+
0
-

Díky za odpověď. Vypadá to jasně. Jen mě napadá ještě jedna věc.

Co vše musí být v modulech? Není například třeba rozlišovat složku models?

Díky.