top of page
STAGE 2 - SP3 CREATION D'UNE ARCHITECTURE MVC
Retour Stage 2

Cette SP fais partie intégrante de la SP 2 : Création d'un site de services alter-info

​

Lors de la création d'un site WEB en PHP 5.6 sur un linux Ubuntu 16.04, on s'est heurté à un problème : Il nous à été impossible d'utiliser Laravel pour cause d'incompatibilité.

Contexte

Nous devons donc trouver une alternative à Laravel.

​

Trois alternatives se proposent à nous :

 - Etudier un nouveau Framework au risque d'être confronté au même problème d'incompatibilité

- Tout coder en html et PHP, et répéter cela sur chaque page

- Tenter tant bien que mal de faire une architecture MVC "maison"

​

J'ai opté pour la troisième solution qui me semblait la plus efficace et surtout la moins longue.

Besoin

Les technologies utilisées ont été :

Technologie(s) utilisée(s)

Grâce à ce projet, j'ai beaucoup appris sur les apports de Laravel au PHP, ainsi que les limites du PHP dans une application "de grande envergure"

​

J'ai aussi beaucoup appris sur le transfert de données avec PHP, les méthodes de stockage et plein de points techniques.

​

Je peut dire avec assurance que ce projet m'a aidé à solidifier mes bases en PHP.

Et finalement... Je trouve que je m'en suis plutôt bien sortit.

Bilan

Ubuntu 16.04

Serveur :

 - Apache2

​

Langage de programmation utilisé :

 - PHP 5.6

 - HTML

 - CSS+ BOOTSTRAP

Un des avantages de Laravel, c'est son 'master' avec toutes ses vues qui viennent s'imbriquer juste en dessous.

1 - La partie "Affichage"

Dans Laravel, chaque Vue est une extension d'un "master". J'ai donc premièrement dû trouver un moyen facile de réutiliser ce procédé très avantageux. De cette façon, l'affichage des données serait beaucoup plus facile.

​

J'ai donc créé un dossier que j'ai nommé "Function" Dans lequel se retrouveraient toutes les fonctions souvent utilisées.

​

Dans ce dossier, j'ai donc mit un fichier nommé "master.php".

Ce master a juste comme fonction d'être le Master (logique ducoup) : Comme dans Laravel, il me suffit donc de taper "Include once ./Function/master.php" pour avoir mon affichage de vue principal auquel viendra s'ajouter toutes les informations dont je pourrais avoir besoin.

​

Aussi simple que ça : La partie Vue de Laravel à été grossièrement imitée donc.

Dans Laravel, l'information pars de la vue, puis est traitée dans un controller. Une fois contrôlée, l'information se fraie un chemin jusqu'à la partie 'métier' ou il y a bien souvent l'agrémentation d'une variable avec une ou plusieurs requêtes SQL.

​

Avec pour seul outil PHP, je n'ai pas pu faire ce schéma à l'identique. Je peut accéder à un controller, mais celui-ci ne peut pas accéder à la classe métier (pour faire un transition en PHP, il nous faut l'utilisation de la méthode 'POST' qui n'est utilisable que depuis un formulaire OU BIEN l'utilisation d'une autre variable SUPERGLOBAL tel que 'SESSION' ou 'COOKIES')

​

Je n'ai donc eu d'autre choix que d'effectuer mes requêtes dans les vues (avant que celles-ci ne puisse afficher une once de HTML)

​

Pour des raisons de sécurité, j'ai préféré ne pas laisser traîner trop d'informations dans des variables superglobales (il serait fâcheux d'avoir des données sensibles qui transitent sur l'ordinateur des clients. Aussi bien pour lui que pour l'entreprise Alter-Info)

Le problème avec php, c'est que pour faire transiter des informations, il faut utiliser des variables superglobales...

(Bon, avec Laravel aussi, mais c'est plus intuitif...)

2 - La partie "controleur"

J'ai quand même utilisé des pages PHP qui ne servent uniquement à rediriger...

Voici la raison :

3 - La partie "routes"

Après moultes essais, j'ai pu réaliser que les COOKIES avaient souvent besoin d'au moins un changement de page afin d'être actifs, c'est pour ça que j'ai créé des pages de redirection.

​

De cette façon, je m'assure que si lors d'un contrôle, je viens à créer ou modifier un COOKIE, la modification sera effective à 100% une fois arrivé sur la page de destination.

Cette page n'étant composé que d'un Header seulement, elle est transparente pour l'utilisateur, deplus, elle me permet en cas de changement de nom de page php ou autre problème de n'avoir qu'une information à modifier.

bottom of page