l'asile.fr


Question aux codeurs autodidactes

JustineF
#1 3615 myliFe

Mettons que je veuille apprendre le php pour créer un site internet.
Sachant que j'ai déjà appris plusieurs langage de programmation pendant mes études sans difficulté particulière, que j'ai appris toute seule le html par exemple, et qu'apprendre une nouvelle "grammaire" ne me fait pas peur.

Quelle est la meilleure solution d'après vous ?
- plonger directement dans le grand bain, pour créer un site à partir de rien, avec un bon bouquin de php sous le coude ?
- prendre le temps de faire une session d'apprentissage avec un bouquin genre le php pour les nuls en faisant des exercices qui n'ont rien à voir avec le schmilblick, mais qui permettent d'assimiler les bases ?
- passer du temps à observer et essayer de comprendre la structure d'un cms codé un php pour voir comment ça marche ?
- payer quelqu'un pour le faire à ma place ?

Est-ce que c'est faisable en y passant genre 1h par jour, ou bien est-ce que ça demande un investissement plus important ?


Merci d'avance.


mercredi
18 juin 2008 à 14:59
 
 

Commence par un truc assez simple, par exemple le carnet d'adresse. Tu fais un site où tu saisi des noms/adresses/... et tu mets à jour une base de données (MySQL).
Et avec google sous le coude tu cherches quand tu bloques (ou tu cherches des exemples de code).

Cela étant, si c'est pour un site web sans connexion avec un serveur (pour une BDD donc), HTML et Javascript sont suffisants. Le code PHP ne s'exécutant que du coté serveur (contrairement au Javascript qui s'exécute sur le poste du client).


mercredi
18 juin 2008 à 15:07
 
 

Le PHP c'est la syntaxe du C avec des fonctions Perl. Un peu plus du C++ depuis la version 5 mais ça reste dans les standards habituel de variantes du C. la difficulté comme toujours est d'apprendre les fonctions de bases propre au langage.
url : http://fr.php.net/manual/fr/index.php


- plonger directement dans le grand bain, pour créer un site à partir de rien, avec un bon bouquin de php sous le coude ?
Oui c'est une bonne solution, livre probablement pas, la meilleur solution reste le site d'aide de PHP :
url : http://fr.php.net/manual/fr/function.echo.php
Pour chaque fonction des exemples commentés, souvent des contributions d'utilisateurs qui donnent des fonctionnalités complètes, sinon rechercher sur google... PHP est le langage le moins indiqué pour débuter avec un livre.

- prendre le temps de faire une session d'apprentissage avec un bouquin genre le php pour les nuls en faisant des exercices qui n'ont rien à voir avec le schmilblick, mais qui permettent d'assimiler les bases ?
Est ce que faire un exercice dont tu n'as rien à foutre du résultat t'apprend quelque chose...

- passer du temps à observer et essayer de comprendre la structure d'un cms codé un php pour voir comment ça marche ?
Non, c'est lourd, empoulé, ca emcapsule chaque fonctionnalité la plus basique dans des couches et des couches de code et d'objets pour rien.

- payer quelqu'un pour le faire à ma place ?
Je ne suis pas cher.

- Est-ce que c'est faisable en y passant genre 1h par jour, ou bien est-ce que ça demande un investissement plus important ?
par séances de 3, 4 heures, deux trois fois par semaines plutôt que hachés menu.


mercredi
18 juin 2008 à 15:12
 
 

Mon avis :

- apprendre le PHP à partir d'un bouquin ou d'un site web est jouable, surtout si tu déniches quelque chose d'assez didactique. Chez O'Reilly il y avait "Pratique de MySQL et PHP" qui est pas mal mais la maison d'édition ayant fermé... Cherche à tout hasard, peut-être en occasion, même pour la première édition. Comme toujours, les bouquins de la série "pour les nuls" sont à fuir.

Le site officiel PHP est recommandé pour servir de référence sur la syntaxe et avoir des exemples utilisables. On en trouve ailleurs, mais le niveau est très variable.

Décortiquer un CMS ou outil équivalent n'est pas trop recommandé, d'une part il va y avoir beaucoup de choses et ce n'est pas dit que ce soit bien commenté ou documenté.

Une chose aussi à bien repérer : le langage PHP n'a pas de points trop compliqués, par contre l'utilisation d'une base de données via SQL, c'est un peu plus pénible, ce n'est pas de la programmation, c'est de la manipulation de données. Là dessus, cela vaut la peine de lire un minimum de théorie au clair (même un topo simple sur commentcamarche.net ou équivalent).

Sinon tu trouveras toujours quelqu'un pour le faire à ta place, mais il y aussi une autre solution : tu dois pouvoir contacter un LUG (Linux User Group) et dénicher un geek qui pourra te mettre le pied à l'étrier (sûrement pour pas cher, le prix d'une bière ou deux). Tu devrais pouvoir contacter Parinux pour ça.

Sinon d'un point de vue technique il faudra avoir un environnement de développement web sur ta machine (serveur web Apache avec PHP, base de données MySQL, ...). Le mieux pour cela est WAMP qui permet de tout installer d'un coup.

Il te faut aussi un éditeur de texte digne de ce nom, ma préférence va à Notepad ++.

Enfin sinon tu peux aussi installer Linux sur ta machine, évidemment.


mercredi
18 juin 2008 à 15:36
 
 

kaplan
#5 Joe Le Mérou

En effet, il est bien connu qu'installer Linux sur sa machine donne instantanément accès (et cela sans avoir seulement ne serait-ce que besoin d'ouvrir un bouquin ou un site web) à une connaissance totale et absolu de l'ensemble des langages de programmation, dont le PHP.

(attention, certains effets secondaires ne sont pas à exclure comme la pousse rapide et inexorable d'un système pileux abondant, le fait de ne pouvoir répondre à la moindre question sans recommander à son auditoire d'installer Linux ou bien un besoin irrépressible de jouer à des jeux en 2D 16 couleurs voire à bubble bobble si vous êtes un radical réformiste).


mercredi
18 juin 2008 à 16:14
 
 

JustineF
#6 3615 myliFe

Merci pour ces avis.
Ce que vous dites sur les cms me rassure un peu... parce que j'y ai déjà jeté des coups d'oeil et, comment dire... c'est au point que j'avais du mal à trouver le fichier où était défini une fonction donnée :/

L'avantage pour moi de commencer par des petits modules faciles et indépendants, même si je ne les utilise pas après, c'est que ça permet de visualiser vite ce qu'on fait.

Après, j'ai l'impression que beaucoup de sites sur le php sont bien pour lister et expliquer les fonctions, mais ce qui m'inquiète plus, c'est de savoir comment bien structurer les fichiers d'un site et les bases de données ; pour que la moindre petite modification postérieure ne nécessite pas des travaux lourds...


Question subsidiaire : Le site du zéro, il est utile ? Ou est-ce qu'il devient un peu juste dès qu'on sait que 1+1=2 ?

Edit @Kaplan : j'ai un filtre interne qui fait que je ne tiens plus compte les phrases qui parlent de linux.


Dernière modification le 18/06/08 à 16:23 par JustineF
mercredi
18 juin 2008 à 16:20
 
 

pas de prog objet, pas d'escapage des données en mysql... ça reste du basic. mais suffisant pour faire un site basic non sécurisé.
manque aussi les require/include, c'est chiant pour faire un site modulaire.


Dernière modification le 18/06/08 à 16:30 par Akshell
mercredi
18 juin 2008 à 16:25
 
 

JustineF
#8 3615 myliFe

Merci Akshell

Et, m'en veuillez pas, je profite du sujet pour bookmarquer quelques trucs...

- Tuto site modulaire


mercredi
18 juin 2008 à 16:58
 
 

mouais mais l'exemple est pas très bon il manque de structure procédurale :

prenons un exemple plus simple :
index.php :
Spoiler : afficher/masquer


Dernière modification le 18/06/08 à 17:28 par Akshell
mercredi
18 juin 2008 à 17:27
 
 

Ellendhel a écrit
Il te faut aussi un éditeur de texte digne de ce nom, ma préférence va à Notepad ++.
MOUHAHAHA §§§ Il n'existe pas sous Linux !


mercredi
18 juin 2008 à 18:01
 
 

Ellendhel a écrit
Il te faut aussi un éditeur de texte digne de ce nom, ma préférence va à Notepad ++.

Ouais enfin quand le projet est un peu conséquent qu'un simple script, utiliser un éditeur qui permet de gérer un projet avec notamment la gestion de l'arborescence est un vrai plus.
Et s'il propose l'autocomplétion, c'est la fête.
Personnellement pour la prog PHP, j'utilise Easy Eclipse pour PHP. Evidemment c'est plus long à appréhender que Notepad++ mais tu gagnes beaucoup de temps par la suite.


mercredi
18 juin 2008 à 18:20
 
 

vi.


mercredi
18 juin 2008 à 18:32
 
 

Pour Notepad++ c'est sûr que ce n'est pas l'outil de développement ultime (contrairement à vi comme le fait remarquer le félidé comédien) mais pour débuter et un projet d'envergure personnelle, ça me semble suffisant.

Ce post a été rédigé sans terme honni par la gente féminine.


jeudi
19 juin 2008 à 08:05
 
 

JustineF
#14 3615 myliFe

...
j'avais cru que LeChat approuvait le post de SimOOn
...


jeudi
19 juin 2008 à 08:29
 
 

Je soupçonne LeChat de faire des posts subversifs et à double sens.


jeudi
19 juin 2008 à 09:09
 
 

JustineF a écrit
...
j'avais cru que LeChat approuvait le post de SimOOn
...

n00b !

Ellendhel a écrit
Je soupçonne LeChat de faire des posts subversifs et à double sens.

Pas du tout, je citais bien "vi". J'aurais du citer "vim", ça aurait moins prêté à confusion :)


jeudi
19 juin 2008 à 09:21
 
 

JustineF
#17 3615 myliFe

'tite question pour voir si j'ai bien compris le principe :
Une page d'admin sur un site en php, c'est exactement le même principe qu'une page normale du site, sauf qu'elle contiendra plutôt des commandes de remplissage de bdd, alors que la page "normal" contient des commandes de lecture, c'est ça ?

Sinon, autre question : comment est déterminée l'url d'une page donnée ? Sur certains sites, on voit des url à rallonge avec des trucs du style "/index.php?s=90dfdd60641b7a2c45b8eee753018707" alors que d'autres ont des url toutes propres.


jeudi
19 juin 2008 à 09:29
 
 

JustineF a écrit
Sinon, autre question : comment est déterminée l'url d'une page donnée ? Sur certains sites, on voit des url à rallonge avec des trucs du style "/index.php?s=90dfdd60641b7a2c45b8eee753018707" alors que d'autres ont des url toutes propres.


C'est un choix du codeur, avec éventuellement des avantages ou contraintes techniques (re-écritures d'url par le serveur, indexation des pages / articles dans la base de données) et d'une envie de permettre aux visiteurs de bookmarker les pages ou non.

Plus d'explications sur le blog de Stéphane Bortzmeyer.


jeudi
19 juin 2008 à 09:50
 
 

JustineF a écrit
'tite question pour voir si j'ai bien compris le principe :
Une page d'admin sur un site en php, c'est exactement le même principe qu'une page normale du site, sauf qu'elle contiendra plutôt des commandes de remplissage de bdd, alors que la page "normal" contient des commandes de lecture, c'est ça ?

Pas forcément, sur un forum ou un blog les "pages" normales écrivent dans la base également.
Les pages d'admin sont à accès restreint c'est surtout ça leur grosse différence.

JustineF a écrit
Sinon, autre question : comment est déterminée l'url d'une page donnée ? Sur certains sites, on voit des url à rallonge avec des trucs du style "/index.php?s=90dfdd60641b7a2c45b8eee753018707" alors que d'autres ont des url toutes propres.

Les url propres c'est de l'url rewriting. Sur les sites en php, ça doit se faire au niveau d'Apache (donc c'est pas du php).

Tout ça à confirmer par un dev confirmé.


jeudi
19 juin 2008 à 09:51
 
 

Une page d'admin, est pas définition une page d'accès restreint.
différentes techniques existe :
- le répertoire caché : dsgmldfsj/admin.php (efficité proche de la nullité)
- l'accès par gestion des utilisateurs apache : url : http://sql.factornews.com/ (se gère avec un fichier .htaccess)
- l'accès par gestion des utilisateurs interne au site : url : http://www.factornews.com/admin.php

et on peut combiner les 3.


« comment est déterminée l'url d'une page donnée ? »

Une url c'est :
- un protocole : http://
- un site : www.factornews.com
- un répertoire : /
- une page : seenews.php
- des paramètres : ?n=4&page=2 (? signale le debut du paramètre, & sépare les paramètres, = sépare le nom du paramètre de sa valeur.

ici le script seenews.php de la racine du site recoit 2 paramètres : n=4 et page=2 qu'on retrouve dans le tableau $_GET
<?php
$n = $_GET['n'];
$page = $_GET['page'];

?>


Dernière modification le 19/06/08 à 12:43 par Akshell
jeudi
19 juin 2008 à 12:43
 
 

Pour commencer et éviter d'avoir à reprendre au début ou presque la création d'un script PHP, je te conseille :

- de commencer dès le début par programmer en Objet ( utilisation des class ) pour créer un script structuré.
- de regarder du coté de la sécurité et PHP, pour apprendre à coder correctement
- d'apprendre le principe des pseudos-frames ( c'est la base de création d'un site )
- de créer ton espace d'administration dans un répertoire protégé par un .htaccess pour le début qui est beaucoup moins difficile à protéger qu'une
administration gérée par session

On peut penser au début que le php c'est simple, mais il y a une notion de sécurité que l'on ne prend pas en compte au début et qui fait que le php
est bien moins simple ( ou du moins moi facile ) à mettre en ouvre qu'il le semble au début.

Cela fais 8 ans maintenant que je programme en php, et depuis que j'ai mis la main dans les notions de sécurité, j'ai l'impression de redécouvrir le langage et en fait l'environnement qui tourne autour.


Dernière modification le 19/06/08 à 13:47 par gwendal
jeudi
19 juin 2008 à 13:46
 
 

JustineF
#22 3615 myliFe

Merci gwendal pour ces précisions.

question peut être idiote : les class, c'est la même chose que ce qui existe en html, ou c'est complètement autre chose, dont tu parles ?


jeudi
19 juin 2008 à 13:56
 
 

Les classes c'est pour la notion d'objet, qui est apparu récemment en PHP.

À la base, le PHP est un langage procédural, comme le C par exemple : on a des variables, des fonctions et le génie logiciel fait que l'on arrive au résultat avec tout ça.

En programmation objet, les choses sont un peu différentes : on instancie des objets qui vont communiquer entre eux pour donner un résultat ; c'est une autre méthodologie.

Et le terme 'class' correspond à la définition syntaxique d'un objet.

Ce n'est pas forcément meilleur ni plus simple mais il y a des avantages certains (héritage, ...).

Le mieux pour creuser la question (parce que j'ai beaucoup vulgarisé là) c'est au moins de lire la page correspondante sur la Wikipédia


jeudi
19 juin 2008 à 14:07
 
 

Bah, pour commencer ça risque d'être un peu lourd de faire de l'objet.


jeudi
19 juin 2008 à 14:20
 
 

Ellendhel a écrit
Pour Notepad++ c'est sûr que ce n'est pas l'outil de développement ultime (contrairement à vi comme le fait remarquer le félidé comédien) mais pour débuter et un projet d'envergure personnelle, ça me semble suffisant.

Ce post a été rédigé sans terme honni par la gente féminine.

Il ne faut pas que le projet dépasse la quinzaine de fichiers alors.


jeudi
19 juin 2008 à 14:47
 
 

LeChat a écrit
Bah, pour commencer ça risque d'être un peu lourd de faire de l'objet.


Pourquoi ? pourquoi faut-il toujours apprendre à programmer brouillon avant de ce dire, haaaaa ouaip bon ben maintenant je vais structurer ma prog, alors qu'il est possible de le faire au début ?

C'est pas compliqué la POO.


jeudi
19 juin 2008 à 20:59
 
 

Oui mais c'est totalement abstrait, donc avoir des rudiments d'algo et de "comment ça marche là-dedans" c'est jamais inutile.


jeudi
19 juin 2008 à 21:36
 
 

déjà programmer sans objets ce n'est pas forcement être brouillon, faudrait arrêter ce genre de remarque de pédants, on peut s'organiser sans. Ensuite il faudrait déjà bien maîtrisé le découpage des scripts et des fonctions avant d'en faire des objets.


jeudi
19 juin 2008 à 21:39
 
 

Même si on peut très bien programmer sans objets, j'ai personnellement du mal à me passer des mécanismes objets comme l'héritage ou le polymorphisme.


jeudi
19 juin 2008 à 21:55
 
 

Si vous avez un bon article sur la programmation objet en PhP je suis preneur, parce que j'avoue que je ne comprends pas ce que c'est.


jeudi
19 juin 2008 à 22:53
 
 


Répondre au sujet

Vous devez être identifié pour participer à ce topic.