pluriels
-
Compteur de contenus
487 -
Inscrit(e) le
-
Dernière visite
Messages postés par pluriels
-
-
Bonsoir à nouveau,
Je suis bien entendu d'accord avec vous, si on se limite au seul besoin "simple" énoncé ci-dessus, sortir l'artillerie pour une fourmi, il y a des chances que ça marche, mais c'est un peu sur-dimensionné. De la même manière, un CMS ou une boutique en ligne vont plus facilement répondre au besoin du client et ne demandent pas non plus l'apprentissage d'un framework. Ils réclament plutôt l'apprentissage de la personnalisation de l'outil choisi.
Les tendances lourdes autour de PHP
- Les frameworks
- l'optimisation de la performance
- industrialisation des développements
- outillage
- audit et qualité de code
Pour rappel, le programme du forum PHP 2010
Et si on parlait d'informatique en général ?
Les frameworks PHP, fortement inspirés de Rails et / ou malheureusement de Java, sont une matérialisation (loin d'être ultime) de l'expérience issue de presque 40 ans d'informatique. Cette expérience est issue d'erreurs et d'échecs qui ont fait avancer l'informatique. L'informatique de gestion représente le plus gros marché du développement d'applications et c'est là que se positionnent les SSII et plus habituellement les plateformes comme Java et .Net. Utiliser un framework PHP, c'est montrer que PHP a également sa place en entreprise.
Sites Web vs. Informatique de gestion
Nos applications Web sont un sous-ensemble de ce vaste marché de l'informatique de gestion. (certains diront même applications périphériques ou peu stratégiques) D'un côté, on peut s'étonner de voir des SSII tenter de conquérir Internet en faisant des sites web. D'un autre côté, les pure-players PHP ont récoltés les succès sur Internet et se tournent maintenant vers les entreprises.Ces deux populations sont amenées à échanger et progresser ensemble avec PHP comme point d'accroche.
Je consulte les offres d'emplois, Symfony revient très fréquemmentEffectivement, les frameworks PHP sont devenus une grammaire commune aux deux univers.
Les pure-players les ont adoptés même pour les sites Internet.
Les SSII ont fait rentrer dans les entreprises les frameworks PHP.
Développeur juniorSi tu veux t'ouvrir un maximum d'opportunités, alors lance toi sur un framework.
Je n'imagine même pas un développeur Java qui annonce d'emblée :je ne connais pas struts, ni spring, ni hibernate...
Mais comme l'on précisé les autres intervenants, un framework simplifie le travail, encore faut-il que tu saches par toi-même ce qu'est le travail avec PHP.
-
Pour une fois qu'on parle de CakePHP, je me permets d'intervenir.
L'apprentissage d'un framework pour un développeur d'applications est une obligation.
J'entends par développeur une personne qui va avoir pour principale occupation professionnelle l'écriture de code PHP ou autre langage.
Le monde des sites web est un peu à part.
Pourquoi pas un framework ?
Si vous regardez dans les autres langages, il est maintenant inconcevable de faire sans.
Quelqu'un fait-il encore ses appels Ajax sans jQuery ou Prototype ?
Fait-on du Java sans connaître un seul framework (struts, spring etc...) ?
Python a django, Ruby a Rails, même en CSS vous avez des frameworks...
Profiter de l'expérience des autres
Chaque développeur se construit son propre framework, ses petites habitudes, ses bibliothèques, ses modèles de script ou sa méthodologie
Utiliser un framework PHP, c'est bénéficier de l'expérience acquise par des dizaines de développeur.
Avec mon unique cervelle, je n'imagine pas un jour lutter.
Progression pédagogique
Effectivement, c'est le gros problème, faut-il apprendre à faire du vélo pour aller plus vite et plus loin ou continuer à courir ?
Quelles sont les connaissances minimum requises ?
Pour bénéficier pleinement de l'apport de CakePHP, il vaut mieux avoir déjà codé une application PHP / MySql avec authentification et sécurisation minimum.
Contenu technique d'un framework
L'architecture proposée par les frameworks, MVC, abstraction de la base de données (DBAL), mapping Relationnel-Objet (ORM) suppose une compréhension minimum en programmation orientée objet (POO) et les design pattern. Le découpage de l'application en couches (Métier, Coordination, Présentation) est déjà un premier pas. MVC, en POO est le suivant.
Ces architectures sont issues d'années d'expérience sur l'ensemble du cycle de vie d'une application.
Ce cycle comprend notamment l'analyse, le développement, le déploiement, la recette et surtout la maintenance.
Parmi les surprises qui peuvent arriver à long terme :
- je veux changer de base de données (heureusement pdo est là)
- plutôt que d'afficher le solde de mon forfait sur une page web PHP, je voudrais le recevoir par SMS, faut-il réécrire le calcul pour les SMS ?
Si oui, comment on fait si la règle de calcul change ?
- finalement, ce serait bien d'afficher aussi ça sur ma freebox
- le prestataire a disparu, je comprends rien au code. (principal risque du framework maison ou code spaghetti).
J'espère ne pas avoir été trop bavard, mais j'adore CakePHP.
-
Celui-ci parait bien ?
postfix install debian sur GG :
http://blog.fabroce.info/post/2006/11/10/I...une-Debian-like
-
comme il faut flash pour afficher la page, il y a peut-être un problème avec le plugin.
-
d'où l'appel discret ajax
par contre au niveau de l'optimisation ce n'est pas génial
Ma solution :
- Crée un éléments pour afficher x messages
exemple :
mon_element.ctp
<?php
foreach($messages as $message){
echo $message['Message']['contenu'].'<br>';
// tu as le droit de faire plus joli !
}
?>Controleur :
function index(){
$this->set('messages', $this->Message->find('all', $options));
}
function edit($sujet_id){
$options['conditions'] = array("Message.sujet_id"=>$sujet_id);
$this->set('messages', $this->Message->find('all', $options));
// tu rajoutes ici les traitements pour ton formulaire
}Vues
- ta vue index.ctp
<?php
$this->renderElement('mon_element', array('messages'),$messages);
?>
- ta vue edit.ctp
<?php
$this->renderElement('mon_element', array('messages'),$messages);
...
// code de ton formulaire
?> -
désolé pour la pub, mais viens plutôt sur www.cakephp-fr.org
Deux solutions :
Logique Ajax :
Tu pourrais inclure ton index avec un appel ajax ? (en utilisant le composant RequestHandler, ton $content_fo_layout sera affiché sans le layout )
De la même manière, tu peux inclure une méthode avec les 5 derniers messages
Logique MVC
M
Dans ton modèle message, tu peux ajouter une méthode :
function lastMessages($personne_id){
$options['order']=array('created'=>'desc');
$options['conditions'] = array(
'personne_id'=>$personne_id;
'date'
);
$options['limit']=5;
$resultat = $this->find('all',$options);
return $resultat
}C
Dans ton controleur messages
function add($personne_id){
$last_messages = $this->Message->lastMessages($personne_id);
$this->set('derniers_messages',$last_messages);
// ici le code qui gère le formulaire
}V
Enfin dans la vue, tu peux te servir de la variable :
$derniers_messages et ensuite afficher ton formulaire
Dont Repeat Yourself => DRY
Dernier conseil, si tu te rends compte que certaines fois dans tes vues, tu as des bouts de code vraiment très proches, tu dois pouvoir créer un élément ou un helper qu tu pourras appeler à chaque fois que tu en auras besoin.
Exemple classique de M -> C -> V
Bon courage
-
il me semble que la question de Libelinfo est judicieuse.
Certaines entreprises demandent à leurs salariés de ne pas avoir d'activités annexes.
Auquel cas, auto-entrepreneur ou autre, vous allez à l'encontre du contrat de travail que vous avez signé.
-
<?php echo "<pre>".print_r($_GET,true)."</pre>";?>
-
Il me semble, pour les gens vraiment tournés vers le développement PHP, que Magento est propulsé par Zend Framework.
Ceci permet d'imaginer une plus grande flexibilité au niveau de la personnalisation, pas au niveau de la décoration, mais surtout pour l'ajout ou la modification des fonctionnalités.
-
pour théoriser un peu tout ça :
- chargement de la page
- affectation des évènements sur les objets de premier niveau
- appel ajax sur les objets de premier niveau
- chargement des éléments de deuxième niveau
- et quand tu cliques rien ne se passe...
Normal, car tes éléments de deuxième niveau n'existaient pas quand tu as affecté les évènements.
Comme l'indique Captain_torche, il faut dans l'appel ajax affecter les évènements sur les nouveaux éléments.
Une autre astuce est de gérer les événements sur un objet de niveau supérieur qui ne bouge pas en fonction des appels ajax.
Ce qu'on appelle la délégation d'évènement
Le lien est un exemple pour Yahoo UI, mais la logique est la même pour jQuery ou autre.
-
pour un site en chinois, j'avais aussi fait appel aux conseils du vénérable Demoore
petit rappel de l'aventure : http://www.webmaster-hub.com/index.php?sho...&hl=chinois
Au final :
- UTF-8
- hébergement mutualisé OVH avec ip espagnole !
ll semblerait que le firewall soit plus indulgent avec les ip géoplocalisées là-bas...
- spip multilingue
- le résultat est là http://www.rsp-ingenierie.com, le projet a été abandonné route.
-
tu peux aussi essayer :
echo "<input type=\"radio\" name=\"choix\" value=\"active\" " . ($activee== 1?"checked":"") . "></input><br />";
par contre pour la lisibilité, c'est un brin délicat
-
pourquoi ne pas utiliser un tableau ?
$aa[0] = 1
...
$aa[n] = xyz;
while ($nb < 4)
{
print "***** variable: ".$aa[$nb]."<br>";
...
} -
350 euros HT / jour, sont les tarifs habituels.
Certains clients trouveront ça cher, mais je ne bosse plus avec ceux-là...
Il faut aussi prendre en compte que tu as déjà passé au moins 1/2 journée à étudier l'évolution..
Donc 500 euros HT semble une bonne offre pour ta cliente et pour toi.
-
Pourquoi préfères-tu une requête sur l'id plutôt que sur nom_dept ?
$nom_dept = '2a';
$nom_dept = "02";
ou encore
$nom_dept="21";
$mysql->query('SELECT numero_dept, nom_dept, region, adresse, telephone, fax, email, www FROM cartedefrance WHERE nom_dept = '$nom_dept');Tu n'aurais pas besoin du round ou de gérer les 2a 2b ?
-
le problème ne vient-il pas plutôt de
WHERE numero_dept = \''.$pid.'\'');
J'aurais plutôt écrit la contrainte sur le champ nom_dept:
SELECT numero_dept, nom_dept, region, adresse, telephone, fax, email, www FROM conseilgeneral WHERE nom_dept = '2a'
Pour info, round('2a') renvoie 0 car 2a est une chaine de caractères
-
Bon anniversaire au Hub et encore un grand merci aux premiers Hubiens et aux modos pour avoir rendu ce forum aussi agréable.
-
Bonjour,
de mon côté, j'ai utilisé ... du javascript pour importer mes données dans Indesign.
Au lieu de générer un fichier XML (ce que je voulais au départ), je me suis orienté vers un générateur de Javascript.
Au final, on obtient un fichier Javascript à lancer dans Indesign.
-
bienvenue sur le hub !
tu trouveras peut-être aussi des réponses à tes questions
Lionel
-
dans un projet de ce type, il vaut mieux ne pas se focaliser sur le délai.
Comme Davidm, je préconiserai un développement rapide avec un framework,
mais ce type de développement sous-entend un engagement des 2 parties dans le développement.
Le temps de faire les tests correctement, d'envoyer vos retours et d'effectuer les corrections, n'espérez pas passer en production avant 1 mois et demi, surtout en été !
Pour cadrer un peu votre réflexion :
- Le design et les textes traduisent votre identité. Un template lambda ou des textes lambda s'appliquent aux société lambda...
- votre site présente 2 volets : une partie éditoriale / carte de visite de votre entreprise, une partie métier pour le gestion des CV.
vous pouvez scinder les 2 parties : CMS léger ou même site statique optimisé pour le référencement, développement spécifique pour la partie métier.
Le site sera un site d'emploi classique du style Cadremploi, Keljob ou Lesjeudis, avec une stratégie de développement à l'international (donc multilingue).Qu'est-ce qu'un site d'emploi classique ? Ce qui est une évidence pour vous ne l'est pas forcément pour tous, encore moins pour un informaticien ...
- votre site est-il est outil à part entière de votre société ou est-il satellitaire ? j'ai réalisé un projet du même type pour une agence de communication qui connaissait bien une niche, mais ce n'était pas son coeur de métier. Le site a été mis en ligne mais quasiment aucun CV n'est arrivé. La méconnaissance du référencement et le manque d'implication ont fortement joué dans l'échec du site.
En tant qu'exécutant, ça m'a ennuyé pour eux, malgré tous les conseils que j'ai pu leur fournir. Un site Internet représente au lancement un investissement, en temps et en argent.
- vous pouvez éventuellement opter pour un script payant, mais comment pourrez vous le faire évoluer ? cela me paraît risqué.
Bonne chance pour votre projet.
-
il ya beaucoup de référenceurs sur le hub.
J'ai dernièrement discuté avec Patrick, de la société ADIFCO.
Il m'a paru sérieux et doté d'une bonne approche.
Si je ne me trompe pas, Cariboo en connaît aussi un certain rayon.
Les prestataires sont nombreux et il est difficile de s'y retrouver.
Je crois que le plus dur est de trouver des éléments de comparaison entre les référenceurs.
A quand le guide : bien choisir son référenceur ?
-
effectivement tu peux jouer avec les CSS.
#mon_conteneur_noir table.spip td{
border-left : solid 1px black;
}
#mon_conteneur_blanc table.spip td{
border-left : solid 1px white;
}Dans ton squelette, tu peux place un :
<div id="mon_conteneur_blanc">
#TEXTE
</div>
<div id="mon_conteneur_noir">
#TEXTE
</div>Les tableaux dans mon_conteneur_blanc auront une bordure blanche.
Les tableaux dans mon_conteneur_noir auront une bordure noire.
-
Avis sur un code PHP
dans PHP
Cela ressemble à une usine à gaz mais peut se justifier :
- file_exists ne fonctionne qu'en local je crois
- fopen n'est pas disponible sur tous les hébergements.
Le script contourne l'utilisation de fopen en ouvrant un socket.
-
Je te conseille vivement de migrer.
Cela t'évitera de bricoler et d'utiliser un plugin qui n'est plus tenu à jour.
L'article est quand même de 2004...
Tentative d'intrusion
dans PHP
Posté
Fail2ban peut effectivement metre à jour iptables, ou /etc/hosts.deny
Mais ça cache la misère, tes logs seront un peu plus propres, mais les attaquent ne s'arrêteront pas.