Hej.
Har tidligere brugt dette lille framework når jeg skulle lave mine php sider, men vil nu gerne lave dette endnu smartere, har kigget lidt på de forskellige MVC projekter der findes (Codeigniter, Zend og CakePHP), men vil gerne lave mit eget lille framework.
Nedstående er en simpel version af sådan som jeg tidligere har gjort. og er jo basic en simpel template, hvor nogle funktioner bliver hentet ind alt efter hvilken side som hentes.
index.php
<?php
include_once ("core.php");
$page = file_get_contents("loginview.htm");
$page = str_replace("{VAR:MAIN}", gen_contents(), $page);
print $page;
?>
loginview.htm (Ved godt det kunne sættes pænere op med css samt at koden ikke validere.)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
<head>
<title>Login View</title>
</head>
<body>
<h2>Login</h2>Skriv dit brugernavn og password for at logge ind.
<br />
<form name="login" id="login" method="post" action="index.php?side=login">
<table border="0">
<tr>
<td>Brugernavn:</td>
<td><input type="text" name="username" tabindex="1" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" tabindex="2" />
<br /></td>
</tr>
<tr>
<td><input type="submit" name="login" value="Login" tabindex="3" /></td>
<td></td>
</tr>
</table>
</form>
{VAR:MAIN}
</body>
</html>
Core.php
<?php
function frontpage()
{
$text = 'forside';
return $text;
}
function gen_contents()
{
$id = $_GET['side'];
switch ($id) {
case 'login':
include_once ("class/login.class.php");
$login = new Login();
$text = $login->logincheck();
return $text;
break;
default:
$text = frontpage();
return $text;
break;
}
}
?>
login.class.php
<?php
class Login
{
function logincheck()
{
$username = 'user';
$password = 'password';
if ($_POST['username'] == $username && $_POST['password'] == $password) {
$logintext = 'login ok';
} else {
$logintext = 'ikke logget ind';
}
return $logintext;
}
}
?>
På forhånd tak