Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

432 commentaire(s) de aKheNathOn sur des sources sur tout CodeS-SourceS

Le : 28/11/2008 09:49:47
Source : GESTIONNAIRE DE MODÈLES SQL
Lut malalam, tj un plaisir de lire tes commentaires très précis :)

Toujours en allant dans le sens de malalam, j'aurais trouvé ça fun de pouvoir directement faire :

$oPdoInstance->Users()->Update('...');

Une vérif aurait checké si users est chargé en tant que module, dans le cas contraire il l'aurais instancié et mis en cache. Il en retournerais son instance :)

Destiny, en réalité je me suis pas mal penché sur l'optimisation de certains codes dans des frameworks et je me suis rendu compte que même si PHP gère automatiquement les pointeurs, ce n'est pas toujours fait, du coup je prends des précautions :

Exemple :
public function __construct (PDO &$oPdo) {
  $this->_oPdo =& $oPdo;
}

Dans l'argument je lui dit que j'ai besoin d'une référence à l'objet pdo et non d'une valeur clonée. Ensuite je le sauvegarde dans une variable privée de ma classe, mais toujours en tant que référence. Sinon, dans certains cas il me duplique l'objet qui est pourtant une référence.

Malalam, je ne sais pas si ça relève du bug ou bien s'il faut bien tout déclarer, la plus part du temps je ne le fais pas - du coup des fois j'ai des perfs flinguées et des résultats incohérents.

Tu peux tester, la version SVN est à cet emplacement :
https://dotview.svn.sourceforge.net/svnroot/dotview/trunk

T'as rien à installer, juste déclarer le répertoire démo en tant qu'allias demo puis aller à sa racine.

Ca va te générer une erreur normale vu que t'as pas configuré les bases de données - et à droite de l'erreur t'as le debug stack. Il est vide...

dans dotview/core/debug.class.php modifies ça :
... &getInstance()... ligne 12

dans dotview/core/core.class.php
... &debug() ... ligne 8

Ce qui est étonnant c'est que le comportement change si on utilise une version antérieur de PHP.


Le : 27/11/2008 18:15:38
Source : GESTIONNAIRE DE MODÈLES SQL
Oui, et les références c'est simple aussi. Quand t'appelles une fonction tu communiques.

Tu lui envoies des arguments et elle te renvoie un résultat.

Pour les argument tu peux lui passer une valeur genre VRAI/FAUX ou 10/-10, ou bien lui passer une référence.

La référence c'est que tu lui envoies non pas une donnée mais une variable - la nuance c'est qu'en lui envoyant la variable tu peux la modifier dans la fonction.

Exemple :

$val1 = 10;
function maFonction(int &$argument) {
  $argument = -99;
}
echo $val1.'<br />';
maFonction($val1);
echo $val1;

Ca va afficher :
10
-99

---

Les références sont importante à utiliser dans le passage d'objets, car en cas d'ommission il duplique l'objet et pour de gros objets cela est couteux en temps (exemple typique la structure dom d'un XML)

---

Autre détails, le résultat d'une fonction peut être envoyé en référence également, en utilisant :

function &maFonction() {
return new PDO(...);
}

C'est utile surtout quand tu as des classes de type singleton ou factory (design patterns)


Le : 27/11/2008 18:09:30
Source : GESTIONNAIRE DE MODÈLES SQL
Non destiny, t'inquiettes c pas compliqué.

Déjà les variables des fonctions, la plus part du temps tu peux avoir :

function maFonction($var1, $var2) {
...
}

Mais à aucun moment tu ne dis à quoi correspond var1 ou var2 en tant que type de variable - du coup php accepterais que t'appelles ta fonction ainsi :
$resultat = maFonction(true, 10);
ou $resultat = maFonction("Salut !", new PDO(...));

Tu vois, on peut à peu près tout faire, et dans la pluspart des cas elle va planter à moins que tu tartines des tonnes de vérifications pour expliquer la vraie cause de l'erreur.

Ben sinon depuis php 5 tu peux typer tes arguments :

function maFonction(array $var1, string $var2) {
}

Si c'est un objet, tu indiques le nom de la classe, comme ...(PDO $varPDO)...


Le : 27/11/2008 14:52:58
Source : GESTIONNAIRE DE MODÈLES SQL
J'ai pas d'article concernant les pointeurs, juste le fait que sur un framework actuellement en cours de dév, ça va faire deux jours que j'avais un singleton permettant d'empiler des données de débug il à chaque affichage il ne contenait rien alors que j'étais certain qu'il devais être rempli ... et en rajouttant function &getInstance()... ça à fonctionné - mais y'avais d'autres clonnages un peu partout.

Du coup, du moment ou l'instance n'est pas à cloner j'en met des couches. Juste sans mettre des pointeurs, rajouttes ça dans tes classes :

  public function __clone() {
    throw new Exception('Should not clone :(');
  }

J'ai plusieurs instance de serveurs avec différentes versions et j'ai eu ce bug sous WAMP 2.0 - PHP 5.2.6

Pour le typage, essayes ça :

<pre>
<?php
function debugArray(array $arg) {
print_r($arg);
}
debugArray(array('Valeur 1', 'Valeur 2'));
debugArray('Some text !');
?>
</pre>

En retour tu auras :

Array
(
    [0] => Valeur 1
    [1] => Valeur 2
)

Catchable fatal error: Argument 1 passed to debugArray() must be an array, string given, called in C:\..\test.php on line 3


Le : 27/11/2008 13:52:22
Source : GESTIONNAIRE DE MODÈLES SQL
Superbe :)

Juste quelques remarques :

Sur tes fonctions mets des pointeurs car à partir de php 5.2 il clone les objets dans certains cas de figures. Déclares tes fonctions genre : public static function &init(

A partir de php 5 tu peux typer tes déclarations :
public static function init ($aServerConfig) {

Devient :
public static function &init (array $aServerConfig) {

Plus la peine de vérifier que c'est un array, d'ailleurs sur le constructeur de PdoModel tu l'avais renseigné.

D'ailleurs en parlant de pointeurs :

public function __construct (PDO &$oPdo) {
  $this->_oPdo =& $oPdo;
}

----

Sinon :
- Le code est bien fait / structuré
- Super simple d'utilisation
- Manque quelques fonctions dans le helper genre le stripslashes / le helper est en principe spécifique au driver
- Manque des notions d'ORM mais c'est déjà tellement mieux que de faire du SQL directement dans les vues.


Le : 25/11/2008 16:01:50
Source : COMPTEUR DE VISITES (HIT) PARAMÉTRABLE - VERSION 1.1.0.A
Les approches sont différentes entre proposer des outils à un webmaster ou à un développeur.

En occurence, là j'ai l'impression que ces codes s'adressent à des webmasters qui n'ont pas forcément de notions PHP ou de programmation.
(Je dis ça car si ça aurait été pour un développeur des classes auraient été quasiment obligatoires)

Du coup ils auraient dû faire un code en javascript pour la partie intégration, prennez exemple sur le code de pub de google ou xiti.

Les scripts seraient hébergés sur le serveur du site ou vous pourriez en proposer l'hébérgement mais le plus important : le webmaster n'aurait pas à y toucher ou l'intégrer directement dans le code de PHP son site. Il aurait juste à copier / coller un code javascript à intégrer dans son code HTML.

Vu que vous parlez de paramètrage, un générateur de ce code javascript serait alors appréciable - du coup n'importe qui pourrait l'intégrer sur son site ou son blog.

Sinon que dire, bon courrage les gars :)

Bonne prog et à bientôt pour des mises à jour j'espère ou de nouvelles libs.


Le : 25/11/2008 11:02:09
Source : COMPTEUR DE VISITES (HIT) PARAMÉTRABLE - VERSION 1.1.0.A
ptite précision / traduction par rapport au commentaire de codefalse (qui à tout à fait raison)

KISS : Keep It Simple "Stupid"
DRY : Don't Repeat Yourself

Manque ce genre de tuto sur ce site :(



Le : 25/11/2008 10:47:48
Source : COMPTEUR DE VISITES (HIT) PARAMÉTRABLE - VERSION 1.1.0.A
Cher Boss des Dwarfs :)

Le script est très utile, finition super sympa.

Un petit regret c'est qu'il ne soit pas codé en tant que classe encapsulant les paramètres. La gestion des erreurs est à faire par le composant lui-même or tu en met une couche à chaque écriture.

Tu fais un echo $counter qui est généré dans ton fichier d'includes - c pas top, tu devrais plutot utiliser des fonctions dans des classes pour ça.

Bonne continuation,
Akh


Le : 19/11/2008 14:19:16
Source : SECURISATION D'UNE ZONE
La POO c'est la programmation orientée objet et c'est ce qu'il faut quand on souhaite programmer de manière plus organisée et réutilisable. Tu as des cours à cette adresse :

http://phpdebutant.org/article42.php


Le : 18/11/2008 16:21:20
Source : SECURISATION D'UNE ZONE
Lut liptibilly :)

Vu le nombre de commentaires tu est bien courageux de tous les prendre en compte. Essayes de te renseigner au niveau de la POO en PHP5 - ce serais un super bon début pour un débutant.

Bonne prog et à+,
akh





Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.