Arborescence, quelle structure adopter ?


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2214
Inscription: 10 Avr 2005

Arborescence, quelle structure adopter ?

Message le Lun Déc 15, 2008 11:19

Bonjour,

Avant de démarrer une nouveau projet, je peux passer des 10aines de minutes sur la "problèmatique" de l'arborescence du site.

1/ Déjà, organisez-vous les css et js dans un dossier séparé.

/
/images/
/css/
--page1.css
/js/
--page1.js
page.php
page1.php
page2.php

ou

/
/images/
page.php
page1.php
page1.js
page1.css
page2.php


Quel est l'intérêt de l'une ou l'autre organisation ?
D'un coté on sépare clairement les types de fichier, de l'autre on retrouve les fichiers liés les un à coté des autres.

2/ Typez-vous vos fichiers avec des extensions dans le nommage ?

fichier.class.php
fichier.tpl.php


Même si vos fichiers sont dans des dossiers séparés ?

/class/
-fichier.class.php
/template/
- fichier.tpl.php

ou
/class/
-fichier.php
/template/
- fichier.php


Ce sont les premières étapes, les autres questions surviendront selon vos réponses.

Merci


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Déc 15, 2008 11:47

En fait peu importe, le principal c'est de si retrouver facilement et accéder à un fichier soir "naturel".

Moi par exemple j'utilise une arborescende de ce type :
Code: Tout sélectionner
_class/
_class/com/monsite/...
_css/
_js/
images/
index.php


k2pi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 313
Inscription: 4 Fév 2007

Message le Lun Déc 15, 2008 12:35

Ca c'est un peu les gouts et les couleurs ta question.
Ca depend aussi de la taille du projet forcement.
Perso moi c'est

images/
css/
js/
model/
view/
controler/
lib/
(test/)


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2214
Inscription: 10 Avr 2005

Message le Lun Déc 15, 2008 12:38

Bacteries
Première réponse, première chose intéressante.
Pas mal le coup de l'underscore... je note.


Bacteries a écrit:
Code: Tout sélectionner
_class/
_class/com/monsite/...
_css/
_js/
images/
index.php


_class/com/monsite/...
A la Java ? Mais tu places tes sites à quels niveaux ?



k2pi
Quel est ton retour d'expérience du MVC en PHP ?
Est-ce vraiment une bonne méthode pour un site Internet "classique" (j'exclue par là le développement d'outils) ?
Ce n'est pas trop lourd à mettre en place ? Ca ne complique pas le développement ?


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Déc 15, 2008 14:06

Ce que je donnais c'est l'arbo pour un site.
Mes fichiers sont donc à la racine (mais au final peu) ou dans des répertoires pour éviter d'avoir un trop grand nombre de règle d'URL rewriting.

Mes classes PHP oui c'est une arbo à la java, j'ai un autoload qui va me chercher mes classes.
J'ai aussi un répertoire avec mes templates.
Le "_" je le met pour avoir les dossiers technique en premier.

Et dans les fichiers à la racine je fais les appels des classes pour m'afficher mes pages. Mais souvent le code est relativement court (du genre
Code: Tout sélectionner
<?php
include('_class\autoload.php');
$startdate = date();
$page = new com_tonsite_Page_PageActu($startdate ,25);
$page->display();

)


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2214
Inscription: 10 Avr 2005

Message le Lun Déc 15, 2008 14:30

Oké extra, merci pour ces explications. Je vais adopter le _ pour les dossiers.

Par contre je suis encore un peu retissant pour le MVC.

Si d'autres personnes ont des structures, des astuces ou méthodes de travail différentes elles seront les bienvenues.


k2pi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 313
Inscription: 4 Fév 2007

Message le Lun Déc 15, 2008 15:38

Pour MVC l'essayer c'est l'adopter ;)

Si tu as une bonne expérience en modélisation objet, avec php (depuis la v5) c'est parfait.

Mon retour d'expérience : si tu as un petit site a mettre en place, qui n'est pas voue a évoluer beaucoup c'est sur que ce ne faut pas forcement le coup de se mettre a MVC (encore que si tu as déjà fait un mini framework maison ça peut être rapide de reprendre le core).
En revanche, pour un site qui commence a être gros et surtout qui a besoin d'être évolutif c'est vraiment parfait.
En gros tu augmente pas mal ton niveau d'abstraction et une fois que tu as gérer les problématiques techniques spécifiques tu penses plus abstrait et c'est vraiment agréable.

Apres pour le cote "Design Patter, whaou ca doit etre une usine a gaz ce truc la !" il faut bien relativiser et comprendre que l'important c'est de comprendre la philosophie du pattern pour se faire l'implémentation qui te correspond le mieux.


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2214
Inscription: 10 Avr 2005

Message le Lun Déc 15, 2008 15:50

Utilises-tu Zend Framework ou un autre ?


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Déc 15, 2008 16:59

MVC je te le conseille aussi.

Je me suis fait un framework maison, dans lequel j'utilise du Zend Framework (car il est modulaire) et ça simplifie grandement la vie et le dév.


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Message le Lun Déc 15, 2008 17:18

Moi c'est CakePHP donc:

/cake/
/vendors/
/app/
/app/config/
/app/controllers/
/app/locale/
/app/models/
/app/plugins/
/app/tmp/
/app/vendors
/app/views/
/app/webroot/
/app/webroot/css/
/app/webroot/img/
/app/webroot/js/
app_controller.php
app_model.php
index.php


k2pi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 313
Inscription: 4 Fév 2007

Message le Lun Déc 15, 2008 19:14

Non j'utilise le k2pi-framework ;)

C'est sur que j'aurai pu (du?) prendre un gros framework mais - et je pense que je ne suis pas du tout un cas isole - c'est au fur et a mesure que j'ai constitue le mien.
A chaque fois que je développais un site j'enrichissais un peu le truc.


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Message le Lun Déc 15, 2008 20:21

dorian53 a écrit:Par contre je suis encore un peu retissant pour le MVC..

Dommage

k2pi a écrit:Pour MVC l'essayer c'est l'adopter ;)

Je suis tout à fait d'accord. J'ai commencé il y a 4 mois ... et maintenant je peux dire assurément que je code 3 fois plus vite, 10 fois plus proprement et 100 fois plus facilement editable-réutilisable


spout a écrit:Moi c'est CakePHP:
Et moi aussi c'est cakePHP !!! Il marche super bien. Hier j'ai juste du éditer la lib rss pour faire exactement ce que je voulais !


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2214
Inscription: 10 Avr 2005

Message le Lun Déc 15, 2008 20:49

Ralala, vous me mettez le doute, je vais être obligé d'essayer le MVC... Dans mon esprit ça fait beaucoup de code pour des choses parfois simples. En fait j'aime pas trop le rôle du contrôleur, je trouve ça plus fouilli que d'avoir des pages .php bien distinctes.




Bacteries a écrit:Ce que je donnais c'est l'arbo pour un site.
Mes fichiers sont donc à la racine (mais au final peu) ou dans des répertoires pour éviter d'avoir un trop grand nombre de règle d'URL rewriting.

Tu parles surement des .htaccess
Le .htaccess du niveau inférieur écrase celui du niveau supérieur ?
De là je me pose la question de savoir comment interdire l'accès au site à quelqu'un ?
deny from ip était parfait lorsqu'il n'y en avait qu'un
Mais avec plusieurs, comment faire, on ne va tout de même pas répéter la règle dans chaque fichier s'il y en a plusieurs ?
J'espère avoir été clair.


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Message le Lun Déc 15, 2008 21:03

dorian53 a écrit:Ralala, vous me mettez le doute, je vais être obligé d'essayer le MVC... Dans mon esprit ça fait beaucoup de code pour des choses parfois simples. En fait j'aime pas trop le rôle du contrôleur, je trouve ça plus fouilli que d'avoir des pages .php bien distinctes.

Au début c'est pas facile de se dire qu'il faut "préparer les infos dans un autre fichier" mais c'est tellement plus simple de n'avoir que du html (et quelques balises php) dans tes templates... tellement plus propre.

Franchement, je te conseille d'essayer car en plus de la propreté ...avec Cake par exemple (je parle de cake car je connais) il y a tellement de fonctions utilitaires qu'avant je mettais de nombreuses heures à mettre au point. Ou encore la façon de gérer des formulaires ... est tellement facile (de la création, validation de donnée, à l'insertion par un pauvre $this->User->save($this->data['User']); qui te fait la validation (que tu as établis dans ton modèle comme la validation du mail ou le pseudo unique) et l'insertion dans la bdd

bref, je te laisses regarder mais moi je n'imagine même plus créer un site sans cake ... même un petit site avec 2 pauvres formulaires.

J'ai pas mal testé symfony aussi qui est un peu plus "confusing" (je trouve plus le mot en français) ... à toi de voir il y en a d'autres mais le principe reste le même, seul la syntaxe évolue un peu


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2214
Inscription: 10 Avr 2005

Message le Lun Déc 15, 2008 21:13

Oké merci, je teste ça et vous tient au courant.
Je vais essayer Zend Framework juste parce je pense que ce ne sont pas des débutants sur le sujet.
D'après vous quel est le temps d'adaptation sur un tel framework (découverte totale mais avec connaissance PHP, objet et MVC) ?

Sur l'autre question à propos du .htacess ai-je été suffisamment explicite sur la problématique ?

Arborescence, quelle structure adopter ?

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité