wydaje mi sie ze z nazewnictwem nie jest zle, zrobilem sobie taki config ze stalymi
/* Glowna sciezka do aplikacji */
/* Klasy kontrolerow */
define("CONTROLLERS", ROOT
. "/app/controllers/");
/* Klasy modeli */
define("MODELS", ROOT
. "/app/models/");
/* Klasy widoku */
define("VIEW", ROOT
. "/app/view/");
/* Koncowka pliku klasy */
define("FCLASS", ".class.php");
i w sumie __autoload() dziala elegancko, moge sie teraz odwolac do dowolnej klasy w kazdej klasie ktorej chce (oczywiscie oby tylko zgodnie z MVC)
//02.03
Hey, postanowiłem coś SPRÓBOWAĆ napisać w oparciu o MVC, puki co mam VC, napisałem bardzo prosty system wybierania szablonu, ustawiania i uruchamiania aplikacji, wiadomo, teraz na nic się to nie nada, ale chodzi mi to o samą metodę a raczej metody, czy dobrze są ustawione, czy kontroler dobrze jest napisany itp. Jezeli cos jest zle, a pewnie tak, to prosze o jakies podpowiedzi jak to poprawic. Po poprawie dorzuce model. Pozdro
index.php
<?php
require_once("app/config/config.php");
function __autoload($filename) {
if(require_once(CONTROLLERS . $filename . FCLASS)) return true;
if(require_once(MODELS . $filename . FCLASS)) return true;
if(require_once(VIEW . $filename . FCLASS)) return true;
}
try {
$ob = new Controller();
$ob->run();
} catch(Exception $e) {
echo "Blad: ".$e->getMessage(); }
?>
app/controllers/ViewController.class.php
<?php
class viewController
{
public $themeFolder;
public $themeDirectory;
public function theme($folder)
{
$dir = VIEW . $folder;
throw new Exception("Nie ma stylow w podanym folderze");
$this->themeFolder = $folder;
$this->themeDirectory = $dir;
}
public function getTheme()
{
return $this->themeFolder;
}
public function getThemeDir()
{
return $this->themeDirectory;
}
public function display($file)
{
if(@!include($this->getThemeDir() . "/" . $file))
throw new Exception("Nie znaleziono pliku widoku (".$file.")");
}
}
?>
app/controllers/Controller.class.php (to moglbym wrzucic do jakiegos folderu Core np. ale czekam puki co na opinie
<?php
class Controller
{
public $model;
public $view;
public function __construct()
{
$this->view = new viewController;
// + obiekt modelu
}
public function setTheme()
{
$this->view->theme("theme1");
}
public function setHome()
{
$this->view->display("form.phtml");
}
public function run()
{
$this->setTheme();
$this->setHome();
}
}
?>
app/view/theme1/form.phtml
<form action="index.php" method="POST"> <input type="submit" name="wyslij" value="Zaloguj" />