logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: Comment créer une appli web simple en 2018 ?  (Lu 9189 fois)
wiwiland
Beta testeur

Profil challenge

Classement : 107/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 175


Voir le profil
« le: 01 Mai 2018 à 19:15:38 »

Plop

Après quelques années de développement web en PHP/HTML/CSS il y a 5-10 ans (Symfony, Doctrine, Drupal, Cake, jQuery), j'ai laissé tomber cette discipline. Les choses ont très vite évolué et je ne suis plus du tout à la page. Maintenant, on parle plutôt d'API, de frontend Angular, de déploiement en conteneurs, etc.

J'aimerais me remettre un peu dans le bain et développer une appli très simple (et pas forcément en PHP) : un formulaire pour que mes amis et moi inventions des questions pour un quiz.

Il faut que nous puissions ajouter des catégories (sport / histoire / culture geek / musique / etc.) et lier des questions à ces catégories.
Une petite couche d'authentification ainsi qu'un moyen permettant de gérer les questions soumises seraient un plus.

Quelles seraient vos recommandations pour développer ça le plus rapidement et le plus simplement possible tout en conservant un truc propre, évolutif, et participatif si mes amis veulent aussi se joindre au développement ? Si vous commenciez un projet comme ça, vous utiliseriez quoi comme technos ?

Pour orienter vos réponses, je dispose d'un serveur physique ainsi que de compétences Linux, Git, Docker, NGINX/Apache, et PHP.

Merci
« Dernière édition: 01 Mai 2018 à 21:25:02 par wiwiland » Journalisée
flob
Administrateur

Profil challenge

Classement : 19/54254

Membre Junior
*****
Hors ligne Hors ligne
Messages: 74


Voir le profil WWW
« #1 le: 01 Mai 2018 à 21:14:53 »

Salut,

En gros tu as 3 options :

  • Framework Php et coder ton système entièrement
  • CMS pour avoir la gestion des users, l'administration etc..., donc juste coder le plugin pour ton système et adapter le thème à tes besoins
  • Tout coder sans framework ni CMS !

Personnellement je pense que l'utilisation d'un framework est la meilleure solution pour avoir un code propre et évolutif ( enfin ... si tu codes pas avec les pieds, le framework fait pas tout non plus XD ).
Si tu veux un framework vraiment performant tu peux utiliser Phalcon (il est sous forme d'extension Php, vu que t'as la main sur le serveur tout va bien ^^).
Après c'est à toi de voir si tu préfères utiliser un framework que tu connais déjà, mais franchement je doute que Symfony soit un bon choix (et j'ai jamais utilisé Cake donc je peux pas dire pour celui-là). En framework Php simple mais efficace tu as CodeIgniter.

Git c'est bien pour travailler à plusieurs sur le même projet. Si tu veux un git gratuit mais privé tu peux utiliser Bitbucket

Pour ce qui est du serveur, l'utilisation de Docker ou non, c'est pas mon domaine donc je peux pas te conseiller, mais je pense qu'un debian avec apache et php 7 c'est pas mal (sans docker).
Tu n'as pas parlé de base de données mais je suppose que tu prévois d'en avoir une ^^ (sinon c'est moche), auquel cas tu peux utiliser MariaDB.
Journalisée

Newbie Contest Staff :
Flob
Statut :
Administrateur
Citation :
...
Blog :
elrindel.github.io
wiwiland
Beta testeur

Profil challenge

Classement : 107/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 175


Voir le profil
« #2 le: 01 Mai 2018 à 21:24:25 »

Merci pour ta réponse

J'ai peut-être trop parlé de PHP mais je voulais savoir si des alternatives étaient intéressantes, par exemple j'ai entendu parler de NodeJS et Express qui peuvent apparemment être mis en place très rapidement.

En ce qui concerne Git, j'utilise déjà avec Bitbucket, GitLab, etc. Donc je cherche des avis sur le workflow avec les différents frameworks web disponibles.

Pour les BDD, je pense que ça dépend aussi de l'intégration avec le framework mais je n'ai pas du tout de choix arrêté.

Bref, la question plus précise serait : "Si vous commenciez un projet comme ça, vous utiliseriez quoi pour aller au plus simple / plus rapide (pas usine à gaz) ?"
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 189/54254

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #3 le: 01 Mai 2018 à 23:24:28 »

Io wiwiland,

Je suis comme toi, j'ai appris les technos web il y a... ermm... zrgogneugneu ans... donc, toutes les technos actuelles, je ne les connais pas. De mon point de vue, tout le monde ne jure maintenant que par X ou Y framework, ce qui est bien, mais pas trop. Un framework, c'est lourd, ça charge + ou - 2000000 de classes juste pour te faire un echo. Ca a clairement son avantage pour certains projets, mais c'est souvent overhype, et il semble que ta demande reste relativement "simple". Une auth, une BDD, quelques forms.

Dans ce cas, pourquoi ne pas tester tout ce qui est API REST ? La gestion des méthodes HTTP (pardon, on dit "verbes" maintenant, merci les millenials) se fait simplement, tu as des classes basiques pour gérer ça, et ça permet une certaine évolutivité. Evidemment, ça demande de revoir un peu la manière de coder d'il y a zrgogneugneu ans, mais ça se fait (j'ai du y passer moi aussi).

Je vais tenter d'invoquer le saint lovenunu, il parait qu'il est plutôt doué en la matière et qu'il pourrait avoir un avis éclairé.

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
wiwiland
Beta testeur

Profil challenge

Classement : 107/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 175


Voir le profil
« #4 le: 02 Mai 2018 à 11:25:56 »

Io the lsd ! Merci pour ta réponse

Mais pour faire tourner l'API REST, je prends quoi ? Je pourrais me la devélopper en pur PHP mais je réinventerais certainement la roue.
Malgré la lourdeur imposée par certains frameworks, j'ai l'impression qu'il est parfois possible de faire un truc assez évolué avec peu de code.

Dans l'idéal, j'aimerais juste décrire au framework que je veux pouvoir ajouter des catégories avec un nom, ainsi que des questions avec une catégorie et une réponse, et qu'il me construise un formulaire simpliste lié à une base. C'est pas pour être hype, juste pour utiliser les outils moderne s'ils permettent d'aller plus vite qu'avec les anciens.

Et merci pour ton invocation du guru lovenunu, on verra s'il a quelquechose à proposer !
Journalisée
Asphator

Profil challenge

Classement : 156/54254

Membre Complet
***
Hors ligne Hors ligne
Messages: 158


Voir le profil
« #5 le: 02 Mai 2018 à 22:34:48 »

Salut !

Je vais peut-être passer pour un flemmard de 1ère, mais la solution la plus simple pour pas s'embêter, tu vas chercher un tuto (sdz, developer.net, etc...) et tu chopes la correction (surtout que ce que tu demandes, c'est du déjà fait, refait et rerefait, donc ça se trouve très vite). T'adaptes rapidos le peu de code et yapluka héberger... Du coup, tu t'en fiches un peu d'être à la page ou non, là tu gardes la main tout en en faisant le moins possible.

Sauf si l'objectif est vraiment de remettre les doigts dans le camboui, auquel cas je n'ai pas de meilleure réponse que les précédentes.
Journalisée

Les seules limites sont les nôtres...
lovenunu
Beta testeur

Profil challenge

Classement : 21/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 171


Voir le profil
« #6 le: 03 Mai 2018 à 15:52:52 »

Yop wiwiland & all,
ce que je vais dire vient bien sûr de mon expérience personnelle, tout le monde ne sera pas d'accord.

S'il s'agit juste d'un formulaire qui va insérer une ligne en BDD ... Bah un bon vieux script php comme on apprend sur le SdZ ça fait très bien le taf.

Si ton but est de t'exercer à faire de l'API, la communauté PHP a bien évoluée de ce coté. Il existe aujourd'hui moultes "micro-frameworks" qui s'occupe uniquement de la couche HTTP (mon petit chouchou étant zend-expressive, c'est même celui que j'utilise au boulot, mais il y aussi Slim, silex, ...). Il y a un groupe de discussion/travail qui propose des interfaces standardes pour PHP ( https://www.php-fig.org/psr/ ), à la manière des JSR pour java. Celles qui nous interessent pour faire de l'API sont la PSR-7 (interfaces de Request, Response, Uri ...) et PSR-15 (middlewares HTTP). La plupart des micro-frameworks proposent des implémentations de ces interfaces, ainsi qu'une Pipeline pour executer et chainer des middlewares. Le développement avec ce genre d'outil devient donc assez simple: Un middleware (qui prend la request en parametre, et retourne une response) = une route et ... fini. Je laisse ce lien aussi au cas où :3 https://docs.zendframework.com/zend-expressive/

Bon, et puisque je ne l'ai pas encore assez vendu, saches que tu peux aussi configurer Zend-Expressive pour utiliser un moteur de template comme Twig si jamais tu veux faire une API qui produit du html. (ce qui est a mon avis un des meilleurs combos du moment pour faire un petit site simple sans une grosse machinerie comme symfony ou zend-framework). Toutefois, je te conseille quand même Doctrine/DBAL qui rajoute pas mal d'outils vraiment pratiques au dessus de PDO et compatible avec tous les drivers de ce dernier.

Vu que tu n'es pas limité a PHP, je te propose aussi Flask en python, je ne l'ai essayé que très vite fait, mais il est super agréable à utiliser, et en plus ils viennent de publier la 1.0

Concernant les frameworks JS comme Angular 435 ou ReactJS, c'est bien quand t'as une grosse appli à construire (comme un framework "full-stack" PHP en fait), mais je pense que ces technos demandent beaucoup trop d'investissement afin de les maitriser pour un petit projet.

Dernière idée (qui m'a été glissé par the_lsd il y quelques mois de cela): tu peux très bien écrire une API REST pour gérer tes données ET une appli "front" en PHP avec (ou sans) Twig qui utilise ton API

J'espère que mon post te sera utile,

Des bisous.
Journalisée

Tant pis je remplacerai ma nuit par une sieste.
pixis
Administrateur

Profil challenge

Classement : 16/54254

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 664


Voir le profil WWW
« #7 le: 03 Mai 2018 à 16:23:12 »


Vu que tu n'es pas limité a PHP, je te propose aussi Flask en python, je ne l'ai essayé que très vite fait, mais il est super agréable à utiliser, et en plus ils viennent de publier la 1.0



Il a tout dit, mais je plussoie ça
Journalisée

Newbie Contest Staff :
Pixis
Statut :
Administrateur
Blog :
hackndo
wiwiland
Beta testeur

Profil challenge

Classement : 107/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 175


Voir le profil
« #8 le: 03 Mai 2018 à 16:38:37 »

Super utile ton post ! Un grand merci !

Je ne connaissais pas Flask et ça a l'air cool.
Depuis mon premier message sur ce fil, j'ai un peu regardé du côté des truc qui permettent de monter une API et j'ai trouvé quelquechose d'assez bien sur le papier : API Platform (https://api-platform.com)
Je ne sais pas ce que ça vaut mais je vais comparer cette option à toutes celles que tu as évoquées.

Merci
Journalisée
lovenunu
Beta testeur

Profil challenge

Classement : 21/54254

Membre Complet
*
Hors ligne Hors ligne
Messages: 171


Voir le profil
« #9 le: 04 Mai 2018 à 09:35:36 »

Pour API platform, c'est un projet basé Symfony qui fait a peut prêt la meme chose que Apigility (qui lui est basé sur Zend-Framework). Ma remarque sur ces technos est la même que pour les frameworks front: ce sont de très bons outils ... pour construire de gros projets. C'est toujours sympa de les apprendre / utiliser, mais c'est comme utiliser une tronçonneuse pour couper une feuille de papier.
Journalisée

Tant pis je remplacerai ma nuit par une sieste.
Ge0

Profil challenge

Classement : 16/54254

Membre Senior
****
Hors ligne Hors ligne
Messages: 377


Voir le profil WWW
« #10 le: 06 Mai 2018 à 10:54:26 »

Une autre alternative à étudier : http://phoenixframework.org/
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: