Bonjour,

Tout d'abord , mes questions ne porteront pas sur une technologie en particulier et je ne savais pas trop dans quelle rubrique poster du coup ou alors j'ai mal vu.

Depuis peu j'ai commencé une reconversion professionnelle dans le développement web et j'en suis actuellement à créer mon premier site, c'est super j'adore et passe pas mal d'heures dessus.Ce site est pour un proche qui tient une boutique et qui souhaiterait le faire refaire car il est vraiment vieillot.Seulement voilà je pars un peu dans tous les sens dans le choix des technologies à utiliser et j'aimerais bien qu'on me conseille dessus.

Je vais donc décrire les points clés de ce site et les parties où je ne suis pas sûr.

Coté frontend: création d'un template bootstrap personnalisé, utilisation de jquery pour les plugins ( slider, carrousel, scrolling ect...).
La partie view est segmentée en plusieurs fichiers PHP (header, footer, slider, services, quotes, 404 ect..).
Coté backend: Serveur http et une api twitter pour afficher les derniers tweets.

C'est un site vitrine, très peu de dynamique et il n'y a donc pas de base de données (est-ce que c'est bien?).
Voilà jusqu'ici tout va bien seulement je suis confronté à deux problèmes dûs à mon manque d'expérience .

1) la page contact contiendra un formulaire, avec quoi gerer l'envoi/verifications? Post/objets PHP? J'ai crus comprendre que c'était possible avec AngularJs même si c'est coté client ou encore de l'ajax?

2) La navigation, je suis complétement perdu!!! Est-ce que je mets de simples liens dans des balises avec de l'url rewriting?Est-ce que je dois créer un système de routes avec php ou encore angularJs et son module ngRoute par exemple.

3) Le site contiendra plusieurs rubriques (accueil, particulier, professionnel, vente, formation, contact)Dois-je créer des pages différentes pour chacune d'entre-elles ou est-ce que c'est mieux de n'en faire qu'une seule dynamique genre single page application qui se module suivant la rubrique choisie?

Vous remarquerez que je m'interroge beaucoup sur l'utilisation de AngularJs (que je connais mal encore).

Merci de m'avoir lu.

11 réponses


Grafikart
Réponse acceptée

Oublie le single page application, ça ne sert à rien dans ton cas. Angular ne te compliquera plus la vie qu'autre chose vu où tu en es. Pour l'instant tu peux faire tout ce que tu veux sans passer par du Javascript donc évite de te compliquer la vie.

1/ Tu peux vérifier en PHP les données et afficher les erreurs en PHP, http://www.grafikart.fr/formations/programmation-objet-php/exemple-class-form

2/ De simples liens, plus tard tu peux gérer des urls plus propre (si tu débute évite de le faire, commence simple ^^ mais sinon http://www.grafikart.fr/tutoriels/php/router-628)

3/ A toi de voir, si les pages sont identiques tu peux les stocker en base de données, sinon tu fais plusieurs fichiers

Romain m
Auteur

@grafikart
Merci pour ta réponse claire et rapide.

Je me pencherai sur angularJs aprés avoir mieux compris l'orienté objet en php.

En revanche je ne comprends pas ton explication du dernier point.
Les pages auront toutes le même header/footer, c'est pour cela que j'ai découpé, c'est plus propre et il y a juste à mettre des includes des fichiers dans les views.
En fait je voudrais simplement organiser la structure du mieux possible pour avoir les bonnes habitudes de suite, à la manière du mvc.

Moi j'ai vu que l'on stockait des informations dynamiques en bdd genre (inscriptions, forum) mais pas des pages en elles-même?

Ah et j'oubliais presque, j'adore tes tutoriels vidéos, ils sont trés bien expliqués alors bravo et merci pour ce travail

Bonjour Romain,

Je suis d'accord avec toi pour la partie distinction des fichiers et bdd. À savoir tout de même que WordPress, par exemple, stocke le contenu de l'éditeur de texte wysiwyg en bdd. C'est un choix finalement.

Est-ce qu'une contribution au projet t'aiderait ? Si je peux t'apporter mon aide et mon expérience fais-moi signe ! Est-ce que tu utilises un outil de versionnement comme Github ?

Bonsoir.
Pour ce qui concerne le troisième point de la réponse de Grafikart, il ne te disait absolument pas de stocker tes pages Html dans la base de données.
Ensuite, tu dis que tu n'as pas prévu de base de données car le site est très peu dynamique, mais à moins de faire du stockage de données dans des fichiers, il est quand même préférable de permettre la modification facile de contenu pour la personne a qui est destinée le site (ton proche).
Car s'il doit te contacter à chaque fois qu'il veut une petite modification de contenu, comme par exemple modifier un horaire, il aura l'impression de ne même pas savoir gérer un minimum son site, je te conseille donc de faire un système de gestion de contenu, que ce soit via base de données ou des fichiers pour la gestion des données.

Romain m
Auteur

Bonsoir et merci pour vos interventions.
@sand
Merci pour ton soutien, c'est cool d'avoir des réponses et propositions aussi rapidement.
Alors tout d'abord non je n'utilise pas encore Git pour le versionning car je bosse seul sur le projet et je dois dire que je n'ai pas encore pris l'habitude d'utiliser github pour mes travaux mais c'est sûr que je trouverai une aide adaptée là-bas.
Après toute aide et expérience est bonne à prendre, je veux surtout partir avec de bonnes bases pour devenir un développeur éfficace.

@Lartak
Les modifications statiques se feront directement dans le html (je lui expliquerai comment faire, c'est pas sorcier non plus).En revanche, dans le futur si je devais implementer un portfolio ou un blog par exemple, je créerai une partie administrateur avec bdd mais pour le moment ce n'est pas dans le projet.

Il va donc devoir télécharger les fichiers via FTP sur son serveur par exemple et les renvoyer à chaque fois qu'il voudra modifier du contenu à son site.
Ce n'est pas très sympa pour lui.

Romain m
Auteur

@Lartak
J'entends ce que tu dis et suis d'accord avec toi, l'utilisateur doit pouvoir modifier le contenu de son site via une interface user-friendly comme avec des CMS, seulement je n'en utilise pas et doit donc développer cette interface, c'est en projet mais pas pour tout de suite.

grafikart avait fait un tuto ou il expliquer comment séparer un peu les information de contenu dans des fichier yaml, cela permet de rentre ton site plus facilement modifiable a mon avis.

Tout à fait d'accord avec mon vdd, si tu veux approfondir la structure et l'organisation de ton site pour le rendre plus facilement modifiable, tu peux trouver des tutoriels de Grafikart bien détaillé sur Yaml ou encore Jekyll.

YAML : http://www.grafikart.fr/tutoriels/php/yaml-front-matter-646

Jekyll : http://www.grafikart.fr/tutoriels/html-css/jekyll-505

J'allais recommander Jekyll également, j'en entends beaucoup de bien.
Vous avez un bon retour d'expérience dessus ? Je veux dire concernant la prise en main par le client final / utilisateur pour mettre à jour lui-même son contenu avec Markdown ?
Pour info, il y a des templates disponibles ici http://jekyllthemes.io/ et là http://jekyllthemes.org/.

Merci @Bisoubou Bisounours pour le lien YAML je ne connaissais pas.

@sand
Tout dépends du client final, je n'ais pas eu l'occasion de le proposer encore. Mais clairement il faut quelque conaissance au niveau web. L'HTML pourrait couvrir la mise à jour avec du Markdown. Une organisation en amont du contenus et le tour est joué.
Pour un usage personnel, c'est un gain de temps de mettre en place ce genre de structure pour des petits sites sans avoir besoin de technologie back-end derrière.
L'utilisateur final va t-il préférer cliquer sur des boutons pour mettre à jour son site ou plutôt est-ce qu'il est un peu curieux et passionné pour aller faire les mises à jours à la source. J'ai tendence à croire que les clients finaux préfèrent gagner du temps et que le plus simple pour eux serait tout simplement d'avoir un CMS.
Après pour la prise en main par le client final, tout dépends de la manière dont on lui explique l'organisation et la structure de son site avec les avantages et les inconvénients que ce systeme apporte.