Big Nighty Update de nouvelles fonctionnalités avec le README
Signed-off-by: Emmanuel ROY <ornithorynxe@live.fr>
This commit is contained in:
parent
e291225ae0
commit
77d7dfde23
3
README
3
README
|
@ -1,3 +0,0 @@
|
|||
projet Site1
|
||||
|
||||
premier projet MVC en POO - debuté avec une formation Lyonnaise - IP-formation
|
31
README.md
31
README.md
|
@ -1,7 +1,28 @@
|
|||
MVC - en Programmation Orienté Objet
|
||||
# MVC - en Programmation Orienté Objet
|
||||
---
|
||||
Cette architecture basique est composée d'un layout standard modifiable dont les include sont a définir
|
||||
les urls d'accès sont de type www.domain.tld/page/varname1/varvalue1/varname2/varvalue2/ ...
|
||||
Une page doit etre instanciée dans chacuns des dossiers INCLUDE/modeles-vues-controlleurs de l'application
|
||||
Cette architecture MVC Objet est composée d'un layout HTML5 Standard
|
||||
|
||||
pour le reste, c'est a vous de voir, mais c'est une architecture fonctionnelle à 3 vitesses
|
||||
Les urls d'accès sont de type www.domain.tld/page/varname1/varvalue1/varname2/varvalue2/ ...
|
||||
|
||||
Afin de créér une nouvelle page vous devez créér trois fichiers contenant divers variables, dont voici les commandes:
|
||||
|
||||
|
||||
"application > include > controlleurs > mapage.php" contenant:
|
||||
les commandes permettant de gérer un formulaire
|
||||
un ou plusieurs accès à la base de données
|
||||
les variables ainsi instanciées permettent l'affichage dans la vue
|
||||
|
||||
"application > include > modeles > mapage.model" contenant
|
||||
les variables spécifiques à la page de l'application exemple:
|
||||
name : le nom de mapage
|
||||
description : ma description pour les moteur de recherche
|
||||
params : paramètre(s) supplémentaire(s)
|
||||
|
||||
"application > include > vues > mapage.phtml" contenant
|
||||
les blocs html qui seront afficher dans le layout standard
|
||||
|
||||
Je ne peut que vous proposer de regarder dans le dossier layout afin de comprendre comment cela est afficher!
|
||||
|
||||
|
||||
|
||||
pour le reste, c'est a vous de voir, mais c'est une architecture fonctionnelle à 2.5 vitesses
|
||||
|
|
|
@ -6,7 +6,13 @@ class Modele{
|
|||
|
||||
public function __construct($base_param){
|
||||
|
||||
if(file_exists(MODELS_PATH.DIRECTORY_SEPARATOR.$base_param['name'].'.php')){
|
||||
if(file_exists(MODELS_PATH.DIRECTORY_SEPARATOR.$base_param['name'].'.model')){
|
||||
$fichier = file(MODELS_PATH.DIRECTORY_SEPARATOR.$base_param['name'].'.model');
|
||||
foreach ($fichier as $ligne_num => $ligne) {
|
||||
if(preg_match("#[ ]*([a-zA-Z_]*)[ ]*[:][ ]*([a-zA-Z ]*[ ]*)#",$ligne,$matches)){
|
||||
$this->page[$matches[1]] = $matches[2];
|
||||
}
|
||||
}
|
||||
include MODELS_PATH.DIRECTORY_SEPARATOR.$base_param['name'].'.php';
|
||||
}else{
|
||||
$this->page['name'] = $base_param['name'];
|
||||
|
|
|
@ -13,7 +13,7 @@ class Vue{
|
|||
extract( $baseControlleur->modele->page );
|
||||
|
||||
ob_start();
|
||||
require VIEW_PATH.DIRECTORY_SEPARATOR.$name.'.php';
|
||||
require VIEW_PATH.DIRECTORY_SEPARATOR.$name.'.phtml';
|
||||
$this->block_body = ob_get_clean();
|
||||
|
||||
ob_start();
|
||||
|
|
4
application/include/modeles/accueil.model
Normal file
4
application/include/modeles/accueil.model
Normal file
|
@ -0,0 +1,4 @@
|
|||
name : acceuil
|
||||
description : zatou stra bracadabla
|
||||
params : params
|
||||
|
3
application/include/modeles/error.model
Normal file
3
application/include/modeles/error.model
Normal file
|
@ -0,0 +1,3 @@
|
|||
name : error
|
||||
description : abracadabla
|
||||
params : params
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
<div role="main">
|
||||
<?php echo $this->block_body ?>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>
|
||||
|
||||
<!-- end scripts -->
|
||||
|
||||
<!-- Asynchronous Google Analytics snippet. Change UA-XXXXX-X to be your site's ID.
|
||||
mathiasbynens.be/notes/async-analytics-snippet -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
<h4>Tail PROJECT</h4>
|
|
@ -0,0 +1,18 @@
|
|||
<!doctype html>
|
||||
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title><?php echo $name ?></title>
|
||||
<meta name="description" content= <?php echo '"'.$description.'"' ?> >
|
||||
|
||||
<!-- Mobile viewport optimized: h5bp.com/viewport -->
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons -->
|
||||
|
||||
echo LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."top-css.pthml"
|
||||
|
||||
</head>
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
<h4>Head PROJECT</h4>
|
|
@ -0,0 +1 @@
|
|||
<link rel="stylesheet" href="css/style.css">
|
|
@ -1,21 +1,10 @@
|
|||
<!doctype html>
|
||||
<?php
|
||||
define('LAYOUT_TEMPLATE',dirname(__FILE__).DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'standart');
|
||||
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
echo LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."head.pthml"
|
||||
|
||||
<title><?php echo $name ?></title>
|
||||
<meta name="description" content= <?php echo '"'.$description.'"' ?> >
|
||||
|
||||
<!-- Mobile viewport optimized: h5bp.com/viewport -->
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons -->
|
||||
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you support IE 6.
|
||||
|
@ -24,33 +13,19 @@
|
|||
|
||||
|
||||
<header>
|
||||
<h4>Head PROJECT</h4>
|
||||
echo LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."header.pthml"
|
||||
</header>
|
||||
|
||||
<div role="main">
|
||||
<?php echo $this->block_body ?>
|
||||
</div>
|
||||
|
||||
echo LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."body.pthml"
|
||||
|
||||
<footer>
|
||||
<h4>Tail PROJECT</h4>
|
||||
echo LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."header.pthml"
|
||||
</footer>
|
||||
|
||||
|
||||
<!-- JavaScript at the bottom for fast page loading -->
|
||||
|
||||
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>
|
||||
|
||||
<!-- end scripts -->
|
||||
|
||||
<!-- Asynchronous Google Analytics snippet. Change UA-XXXXX-X to be your site's ID.
|
||||
mathiasbynens.be/notes/async-analytics-snippet -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
echo LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."bottom-javascript.pthml"
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
Loading…
Reference in a new issue