Arborescence, quelle structure adopter ?

WRInaute passionné
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
 
WRInaute passionné
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:
_class/
_class/com/monsite/...
_css/
_js/
images/
index.php
 
WRInaute occasionnel
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/)
 
WRInaute passionné
Bacteries
Première réponse, première chose intéressante.
Pas mal le coup de l'underscore... je note.


Bacteries a dit:
Code:
_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 ?
 
WRInaute passionné
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:
<?php
include('_class\autoload.php');
$startdate = date();
$page = new com_tonsite_Page_PageActu($startdate ,25);
$page->display();
)
 
WRInaute passionné
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.
 
WRInaute occasionnel
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.
 
WRInaute passionné
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.
 
WRInaute accro
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
 
WRInaute occasionnel
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.
 
WRInaute impliqué
dorian53 a dit:
Par contre je suis encore un peu retissant pour le MVC..
Dommage

k2pi a dit:
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 dit:
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 !
 
WRInaute passionné
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 dit:
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.
 
WRInaute impliqué
dorian53 a dit:
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
 
WRInaute passionné
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 ?
 
WRInaute passionné
dorian> Le .htaccess à la racine sera celui pris en compte pour tous le reste.
Mais pour de l'url rewriting, si tu as bcp de règle de ce style :
/users/nomUser
/news/titreNews
autant créer un répertoire users et news dans lequel tu mets tes règles.
Ca évite à apache de faire à chaque demande de page un test sur ces règles là.
 
WRInaute passionné
OK j'avais bien compris le coup des règles dans le niveau inférieur.
J'avais juste peur que ce .htaccess écrase le .htaccess du root.
Mais visiblement. Merci.
 
WRInaute passionné
dorian53 a dit:
D'après vous quel est le temps d'adaptation sur un tel framework (découverte totale mais avec très bonne connaissance PHP, objet et MVC) ?

J'ai lu dans un livre blanc :
Le Zend Framework est donc à réserver aux projets volumineux (plus de 500 j/h)
présentant des contraintes techniques fortes. Par ailleurs, l'utilisation du Zend Framework
nécessite un effort documentaire tout particulier, afin de documenter toutes les
conventions adoptées lors de la phase de développement.

Qu'en pensez-vous ?
 
WRInaute impliqué
Moi j'en pense que cakePHP est pas dur à apprendre.
Après moi j'ai appris sur le tas, en cours d'un projet existant ce qui est très pratique pour comparer, vérifier, copier et tester.
Si tu pars sur un nouveau projet et que tu y connais rien... il faut commencer par les tutos, il y en a beaucoup sur le net.

Je dirais pour cakePHP (que je connais donc je ne vais pas me prononcer sur Zend) ... en une semaine tu feras déjà de belles choses.
 
WRInaute passionné
Zend> Tout dépend de ce que ton utilisation; soit tu veux utiliser l'ensemble du framework, structure MVC & cie.
Ou alors juste des boûts (le cache, les formulaire, ...).

Perso sans préparation j'ai commencé à utilisé mes première bibliothéque Zend en 2H (pour tout ce qui est API Amazon), et je continue petit à petit à intégrer le tout.
 
Discussions similaires
Haut