Astuces/hack php

Soyez le premier à donner votre avis sur cette source.

Vue 18 669 fois - Téléchargée 722 fois

Description

Aujourd'hui, j'ai décidé de détourner un peu le principe des codes de phpcs.
Pour les plus vieux d'entre vous qui ont connu Hebdogiciel (faut vraiment être un vieux croulant, ceci dit :-)), je ne sais pas si vous vous souvenez de la rubrique "deuxlignes" ?
Je reprends vaguement ce principe ici.
En fait, ce post a pour but de regrouper des astuces/hack en php. Pas forcément sur deux lignes...juste des contournements de php, ou des trucs simples auxquels on ne pense pas et qui peuvent être utiles...voire inutiles :-)
Bien entendu, je ne l'alimenterai pas tout seul : je propose donc à ceux intéressés de m'envoyer par MP LEURS astuces (et si elles sont trop longues pour déposer par MP, qu'ils m'écrivent quand même, je leur filerai mon adresse mail).
Je n'utilise pas Codyx pour ça parce que ça ferait beaucoup, ça ne permettrait pas le regroupement, et que beaucoup des astuces seront sans doute destinées à PHP uniquement.

Pour ouvrir le bal, je vous propose 3 astuces différentes :
1 purement php, un hack, pouvant s'avérer très utile
1 purement php, une simple utilisation d'une spécificité de PHP, et qui ne sert à rien...
1 absolument pas purement php, mais qui montre une autre façon de faire ce que beaucoup font déjà...différemment, donc!

je ne sais pas si ce post aura du succès...mais j'attends vos contributions si vous en avez envie! Et je pense que l'on pourrait y voir des choses intéressantes, et qui aident vraiment (ça reste quand même le but), ou des choses étranges...:-)

Je ne mettrai pas les sources de toutes les astuces, mais de certaines seulement (pour l'instant, les 3 miennes). Et je crée un zip avec un script par astuce.

Source / Exemple :


<?php
/**


class foo {
    private $bar = 'test';
 
}

$foo = new foo;
$a = (array)$foo;
echo $a["\0foo\0bar"];
?>

<?php
/**

  • Transformer PHP en un langage purement objet :-)
  • @author : Johan Barbier (aka Malalam)
  • /
class php { public function __call($sFunction, $aArgs) { if(function_exists($sFunction)) { return call_user_func_array($sFunction, $aArgs); } throw new Exception('Function '.$sFunction.' has not been found'); } } $php = new php; $php->phpinfo(); ?> <?php /**
  • Une alternative au modulo pour repérér les entiers pairs et impairs
  • @author : Johan Barbier (aka Malalam)
  • /
for($i = 1; $i < 11; $i++) { echo $i, (($i & 1) === 0) ? ' est pair': ' est impair', '<br />'; } ?>

Conclusion :


A vos claviers... :-)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Arto_8000
Messages postés
1051
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5 -
Le premier exemple est pas vraiment utile à mon avis, ça brise un peu tout le principe de la programme orienté objet. Pourquoi faire un objet si on est pour le transformer en tableau ? L'utilité est un peu douteuse, mais c'est toujours bon à savoir.

Pour le deuxième, ce qui serait un peu plus pratique serait que ta fonction soit static, puisque la création d'un objet n'est pas vraiment nécessaire. Ainsi, tu oublies le "$php = new php;" et tu n'as besoin que de faire ceci "php::phpinfo()". Pour l'astuce, ça peut toujours aider à faire la différence entre les fonctions natives et ceux qui ne le sont pas. Aussi, ça ne transformera pas PHP en language "purement" objet. Un language purement objet, est un language où la seul place où tu peux mettre ton code est dans une classe (ex: JAVA). Ça le rend plus orienté objet, mais pas "purement".
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Comme je l'ai dit : astuces et hacks, le 1er est un hack, et il peut par moment s'avérer utile, même si franchement pas élégant.
Pour le 2d, encore une fois, j'ai bien dit "inutile", avec un petit smiley à côté de "transformer php en un langage purement objet"; c'était une boutade...Ca fait plus de 20 ans que je code, je connais la différence entre java et php (par exemple) :-)
Et qu'on en fasse une méthode statique ou pas, ça ne change rien : ce truc est parfaitement inutile.

Au cas où je me sois mal fait comprendre : il s'agit ici de regrouper des astuces utiles, inutiles, rigolotes, étranges...le plus liées possible à php. Pas d'autres prétentions que cela.
cs_glad
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Statut
Membre
Dernière intervention
24 février 2012
-
Salut

"Pour les plus vieux d'entre vous qui ont connu Hebdogiciel (faut vraiment être un vieux croulant, ceci dit :-)), je ne sais pas si vous vous souvenez de la rubrique "deuxlignes" ?"

Hum, je ne sais pas si je dois me vexer :-)))
J'adorais ça !
cs_Didier72
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
-
Hello

Sympa comment idée, et certainement parfois utiles...
Merci pour l'idée.

Concernant Hebdogiciel, ben je me sens pas vieux du tout lorsque je vois la modernité du contenu de ces magazines.

Je ne le ratais jamais à cette époque... Espérons qu'un jour un équivalent verra le jour pour le bien de tous ???

En attendant, vous pouvez les télécharger et les lire ici (abandonware donc légal): http://www.abandonware-magazines.org/index.php

Bye
malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Ah, je parle des "over" trentenaires...dont je fais bien évidemment partie :-)
Je les ai tous à partir du numéro 48 pour ma part (par là, je ne sais plus trop), et j'adorais! Impertinent à souhait, drôle, intelligent...ça change de ce qu'on a aujourd'hui (sans vouloir faire le vieux con !).

Et merci, sinon :-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.