Qu'est ce qui est à la mode en 2019 ? - HTML/CSS - Programmation
Marsh Posté le 19-02-2019 à 16:22:47
Citation : J'ai également commencé le PHP il y a quelques jours pour m'ouvrir d'autres horizons et faire des sites multilingue mais là encore j'ai l'impression d'arriver après la bataille face à toutes ces choses. |
+ avec Symfony ou Laravel, c'est plus "propre"
Marsh Posté le 19-02-2019 à 17:11:12
Ca serait bien si on pouvait revenir aux sites simples, en pur HTML, qui chargent rapidement, qui n'ont pas besoin de trois tonnes de JS pour fonctionner, qui ne sont pas "optimisés" pour tablette au point d'être beau mais inutilisable/sans vrai contenu. Je peux toujours rêver.
Marsh Posté le 19-02-2019 à 22:41:26
+1. Les sites qui ne fonctionnent qu'avec du JS et qui ne changent pas d'url quand tu cliques sur un lien mais charge à la volée via Ajax le nouveau contenu, c'est une vraie plaie : impossible de bookmarquer une page précise et pour les personnes malvoyantes, c'est le plus souvent inutilisable car les logiciels de type lecture d'écran (ex : NVDA) ne sont pas capables de détecter quelle partie de la page a changé.
A mon sens, un site devrait fonctionner sans JS au moins pour la navigation de base et les fonctions de base. Le JS devrait être là pour améliorer l'ergonomie et apporter des fonctions supplémentaires mais non primordiales... Mais comme le dit rat de combat, c'est pas pour demain
Marsh Posté le 20-02-2019 à 12:06:11
Si je comprends bien, je devrais donc me concentrer sur ce qui est plus traditionnel et laisser tomber l'idée de me mettre à jour sur les dernières technos ? Ajouter simplement ce qui est essentiel en fait. J'utilise déjà Flexbox pour la mise en page en CSS. Par contre j'ai vu un framework appelé Bootstrap qui a l'air pas mal, qu'en pensez-vous ?
Sinon faire au plus simple c'est ce que je fais déjà. Mais par exemple si je veux faire un site multilingue il faudra bien que je passe à quelque chose de plus complet, non ? C'est une des principales choses qui m'intéresserait et j'ai déjà regardé du côté de PHP pour ça mais ça me paraît complexe. De ce que j'ai lu il est aussi recommandé de faire la traduction du contenu depuis le serveur et non depuis le client.
Marsh Posté le 20-02-2019 à 14:16:20
Un site multilingues, il faut une techno côté serveur qui remplacera dans les templates les variables de type "message" par leur valeur en fonction de la langue sélectionnée. Les traductions sont stockées dans des fichiers, généralement, un fichier par langue.
Marsh Posté le 21-02-2019 à 14:12:34
rufo a écrit : Un site multilingues, il faut une techno côté serveur qui remplacera dans les templates les variables de type "message" par leur valeur en fonction de la langue sélectionnée. Les traductions sont stockées dans des fichiers, généralement, un fichier par langue. |
Merci. Il y a-t-il une méthode particulière pour le faire proprement ? J'aimerais que le code ne comporte pas de problèmes de sécurité si possible. PHP a l'air de me convenir pour cette méthode de ce que j'ai vu.
Et pour l'extension des fichiers contenant les traductions, qu'est ce qui est recommandé ? Un fichier .php comme le reste, xml ou autre chose ?
Marsh Posté le 21-02-2019 à 17:32:53
Ca va dépendre si tu prends un framework ou pas. Perso, je fais avec des variables dans un fichier php. Ca évite de coder une phase de parsing pour charger le fichier.
Le XML, faudra parser le fichier : ça risque d'être plus long.
Marsh Posté le 21-02-2019 à 18:06:11
rufo a écrit : Ca va dépendre si tu prends un framework ou pas. Perso, je fais avec des variables dans un fichier php. Ca évite de coder une phase de parsing pour charger le fichier. |
Je me suis renseigné cet après midi et j'ai commencé à faire quelque chose en PHP avec des variables et la fonction define(). J'ai du coup 2 fichiers de langue en PHP ( français et anglais ) et un script qui permet de choisir les fichiers de langues en fonction du choix de l'utilisateur sur la page d'index. Pour le moment ça ne fonctionne pas du tout...
Marsh Posté le 21-02-2019 à 18:11:47
Ou la la, surtout pas de constante global definis avec define !
Le degré zéro du traductible c'est de charger un csv dans un tableau et d'utiliser ton tableau de trad dans ton template d'affichage
fr.csv
Code :
|
en.csv
Code :
|
template_home.php
Code :
|
Marsh Posté le 21-02-2019 à 18:25:25
mechkurt a écrit : Ou la la, surtout pas de constante global definis avec define !
|
Define n'est pas prévu pour cet effet ? Sinon avec ta méthode des tableaux, est-il possible de faire directement le tableau en php sans importer de fichier CSV ? Je suppose qu'il faudra également une boucle pour le parcourir pour charger les bonnes phrases.
Marsh Posté le 21-02-2019 à 20:40:13
Je viens d'essayer la méthode sous forme de tableau et ça marche plutôt bien, merci beaucoup. J'ai donc un fichier fr.php contenant un tableau avec une clé qui correspond à la variable que j'appelle dans l'index et la valeur contient la phrase. Dans l'index j'ai juste un echo $tableau['clé']; à l'emplacement de la phrase.
Maintenant il ne reste plus qu'à trouver un moyen pour le script permettant de choisir la langue. J'ai vu que les sessions permettent de le faire. Si j'ai bien compris il suffit de créer et initialiser une session, puis en fonction du choix cela ouvre le fichier qu'il faut.
Marsh Posté le 21-02-2019 à 22:03:58
Oui, autant faire une variable de type tableau associatif en PHP.
@mechkurt : pourquoi utiliser define dans ce contexte serait une chose à ne surtout pas faire ? Parce que charger un csv à chaque affichage de page, c'est pas ce qu'il y a de plus rapide Perso, entre ton csv et define() je trouve que cette dernière méthode est plus efficace.
Marsh Posté le 22-02-2019 à 16:33:03
Il se peut que je me trompe mais définir 50 (ou +) constantes pour les textes traductibles du site me semblent un peu overkill...
Quand au fait de faire un csv qu'on charges dans un tableau c'est pour faciliter la trad par des organismes tiers.
Et c'est fait en 3 lignes de code :
Code :
|
Marsh Posté le 22-02-2019 à 21:26:21
Ben ce que tu fais revient au même que définir un tableau associatif en PHP directement. Ca évite la phase de chargement du fichier csv.
Marsh Posté le 25-02-2019 à 15:07:09
Bonjour,
Je n'ai pas réussi à faire exactement ce que je voulais mais j'ai une autre question que je me pose. Est-il possible de mettre dans un fichier php par exemple le pied de page, le menu etc... Et de faire appel à ces fichiers à chaque fois plutôt que de tout copier coller dans chaque page ? Il y a t-il une manière "propre" de le faire ?
Merci.
Marsh Posté le 25-02-2019 à 18:43:23
Oui, via les include(), include_once() ou require.
Marsh Posté le 26-02-2019 à 16:39:13
rufo a écrit : Oui, via les include(), include_once() ou require. |
Ça fonctionne super bien ! Merci beaucoup. Ça m'évitera de recopier un millier de fois l'entête et le pied de page même si c'est un peu du gâchis de passer en PHP alors que tout mon site est en HTML5 ...
Marsh Posté le 26-02-2019 à 19:15:11
Include() étant une foncito très basique, ça vaudrait peut-être le coup que tu apprennes les bases du PHP (ex : sur OpenClassroom). Tu perdrais moins de temps.
Marsh Posté le 26-02-2019 à 20:13:59
rufo a écrit : Include() étant une foncito très basique, ça vaudrait peut-être le coup que tu apprennes les bases du PHP (ex : sur OpenClassroom). Tu perdrais moins de temps. |
Oui je suis justement en train de m'y mettre. J'ai vu plus ou moins les trucs de base, tout ce qui est affichage, variable, conditions, fonctions, tableaux... C'est plus ou moins pareil que de nombreux autres langages de programmation, de manière conceptuelle c'est juste la syntaxe qui change. J'ai fais un peu de python auparavant.
Par contre malgré le fait que je connaisse ces choses et mise à part ce qui a été énoncé pour le côté multilingue, je ne vois pas trop comment elles pourraient me servir pour mon site. A vrai dire HTML5 est déjà assez complet. Idem pour le CSS, il y a pas mal de choses et c'est assez simple. Finalement je ne vois pas en quoi PHP pourrait me permettre de remplacer intégralement ces langages, qu'est ce que j'y gagnerais, comment mettre tout cela en place ? Il est très probable que je ne n'y vois pas clair encore mais j'espère avoir des réponses au fil de l'apprentissage. Ça m'a l'air un peu compliqué de faire de la mise en page en PHP.
Marsh Posté le 26-02-2019 à 21:05:48
HTML5 et css ne sont pas des langages de dév C'est juste pour structurer des informations (html) et les mettre en forme (css). PHP permet de générer dynamiquement du HTML et éventuellement css (voire du javascript). La raison est que PHP est un langage côté serveur alors que html, css et javascript sont utilisés côté client. Le côté dynamique côté serveur est justement le concept qui va te permettre de réutiliser du contenu dans plusieurs pages.
Marsh Posté le 26-02-2019 à 21:06:54
Bonjour,
Tu ne fais pas de mise en page à proprement parlé avec PHP. Cela te sert à créer un site "dynamique", c'est-à-dire un site où l'utilisateur peut interagir et le contenu s'adapte à ses actions.
L'exemple le plus répandu, est je pense, la gestion de comptes. Créer un compte sur un site te permet d’accéder à des fonctionnalités spécifiques qui ne peuvent être gérées uniquement par HTML/CSS.
PHP est donc souvent utilisé pour communiquer avec une base de données et effectuer des calculs/traitements.
Exemple simple : un calculatrice. En HTML/CSS, l'utilisateur ne peut pas interagir, tu ne peux donc pas créer de calculatrice. Avec le PHP, tu peux demander à l'utilisateur des données que tu vas traiter et donc faire une calculatrice en passant ses données dans des variables et en effectuant des calculs avec les variables.
C'est un peu pour ça que le HTML/CSS ne sont pas considérés comme des vrais langages de programmation, tu ne peux rien traiter, tu peux juste mettre en forme du contenu.
Au niveau basique, tu as le PHP qui génère ton contenu HTML, ce contenu HTML peut interagir avec le PHP via les formulaires HTML. Et le PHP peut communiquer avec une base de données en générant des requêtes dans un langage compréhensible par la base de données.
Maintenant il faut comprendre l'interface serveur - client. Le client (l'utilisateur) lorsqu'il rentre un lien dans son navigateur va générer une requête qui sera traitée par le serveur. Soit un traitement basique : le serveur renvoie le fichier demandé (généralement un fichier HTML ou une image) soit un traitement plus complexe : le serveur exécute le fichier demandé (fichier PHP par exemple) qui va générer le contenu à renvoyer au client (fichier HTML par exemple).
À partir du fichier HTML renvoyé, le client voit un contenu sur son écran avec lequel il peut interagir soit par un lien soit par un formulaire HTML. Ces deux méthodes vont générer de nouveau une requête qui sera envoyée au serveur et qui de la même manière va renvoyer ou exécuter un fichier.
EDIT : grillé, mais je laisse mon message qui est un peu plus détaillé.
Marsh Posté le 27-02-2019 à 21:35:14
Bonsoir,
Je vois, merci beaucoup pour ces éclaircissements. En somme PHP vient compléter HTML et permet de faire ce que ce dernier ne peut pas permettre de faire. Mais les enjeux de sécurité doivent être d'autant plus grand ! Il faut donc bien sécuriser le transit des données, surtout si il y a un accès à une BDD.
Je ne me sens pas encore prêt pour ça, la route va être longue et sûrement semé d'embûches lors de l'apprentissage. Beaucoup de choses me paraissent encore compliquées.
Marsh Posté le 24-03-2019 à 14:51:42
Paul JR a écrit :
|
Quelle est le meilleur lavarel ou Symfony ?
Marsh Posté le 19-02-2019 à 11:32:29
Bonjour,
Cela fait 2 ans que je fais du HTML/CSS ainsi que du JS. J'en ai un peu marre de faire du surplace, mes sites n'ont rien de claquant. Les interfaces sont moches et je n'arrive pas à produire l'effet "waouh". C'est assez frustrant. Avec toutes ces technologies à l'heure actuelle j'ai l'impression de faire du web comme il y a 10 ans... De ce que j'ai lu sur internet, beaucoup ne font plus du tout de HTML5 et passe directement sur des langages de programmation. J'aimerais donc me mettre à jour et utiliser des choses plus modernes et pourquoi pas gagner en efficacité plutôt que de réinventer la roue à chaque fois. Je cherche dans un premier temps à m'améliorer en front end, je verrai le back end plus tard quand j'évoluerai davantage sur l'échange de données.
J'ai entendu parler de frameworks pour le front end tel que Vue.js, React ou Angular mais là je ne vois pas trop à quoi pourraient-ils me servir pour mes projets perso. D'ailleurs j'ai vu que c'était essentiellement pour les applications web... Je fais essentiellement des sites d'informations où il y a pas mal d'interactivité.
J'ai également commencé le PHP il y a quelques jours pour m'ouvrir d'autres horizons et faire des sites multilingue mais là encore j'ai l'impression d'arriver après la bataille face à toutes ces choses.
Je suis perdu et avoir un peu d'aide ne serait pas de refus.
Merci d'avance.