Big Nighty Update de nouvelles fonctionnalités avec le README

Signed-off-by: Emmanuel ROY <ornithorynxe@live.fr>
This commit is contained in:
Emmanuel ROY 2018-12-09 04:44:37 +01:00
parent e291225ae0
commit 77d7dfde23
15 changed files with 91 additions and 44 deletions

3
README
View file

@ -1,3 +0,0 @@
projet Site1
premier projet MVC en POO - debuté avec une formation Lyonnaise - IP-formation

View file

@ -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

View file

@ -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'];

View file

@ -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();

View file

@ -0,0 +1,4 @@
name : acceuil
description : zatou stra bracadabla
params : params

View file

@ -0,0 +1,3 @@
name : error
description : abracadabla
params : params

View file

@ -0,0 +1,4 @@
<div role="main">
<?php echo $this->block_body ?>
</div>

View file

@ -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>

View file

@ -0,0 +1,2 @@
<h4>Tail PROJECT</h4>

View file

@ -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>

View file

@ -0,0 +1,2 @@
<h4>Head PROJECT</h4>

View file

@ -0,0 +1 @@
<link rel="stylesheet" href="css/style.css">

View file

@ -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>