JeuWeb - Crée ton jeu par navigateur
[PHP] Trop de define tue-t-il les define ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP] Trop de define tue-t-il les define ? (/showthread.php?tid=5683)



[PHP] Trop de define tue-t-il les define ? - Ter Rowan - 10-09-2011

Salut je me pose des questions suite a un précédent post de php addict.

J'utilise les define pour améliorer la visibilité du code : entre 33 et succès_critique y a pas photo pour comprendre mon code

Mais voilà je me dis que je vais employer beaucoup de define
Aujourd'hui j en ai une vingtaine mais si je généralise j estime monter a une ou deux centaines

Est ce beaucoup ? Trop ?
Quelle méthode utilisez vous pour avoir dans le code des éléments lisibles qui correspondent en base a des chiffres ?



RE: [PHP] trop de define tue t il les define ? - Sephi-Chan - 10-09-2011

Pourquoi trop ? Qu'est-ce que tu crains ?

Je n'ai jamais lu aucune contre-indication sur la quantité de constantes et quand bien même, ça n'a aucune importance : tout ce qui est bon pour la lisibilité doit être fait. Smile

En Ruby, j'utilise pas mal les constantes. Sinon il existe les symboles (qu'on utilise généralement pour les clés de hash), qui correspondent en interne à des nombres et sont donc très efficaces en terme d'occupation mémoire.


class Game < ActiveRecord::Base
MAXIMUM_PARTICIPATIONS_COUNT = 5
UNITS_COUNT_AT_BEGINNING = 25
PLAYER_COLORS = %w( blue green orange purple yellow )

# States.
WAITING_FOR_PLAYERS = 10
DEPLOYMENT = 20
RUNNING = 30
FINISHED = 40

default_value_for Confusedtate, Game::WAITING_FOR_PLAYERS

has_many :ownerships
has_many :participations
has_many :users, through: :participations


# Keep games with free slots.
def self.not_full
where { participations_count < Game::MAXIMUM_PARTICIPATIONS_COUNT }
end


# Assign territories and set the limit time.
def start_deployment!
update_attributes!(state: Game:Big GrinEPLOYMENT, deployment_finish_at: 24.hours.from_now)
dispatch_territories!(Territory.all.shuffle, participations.shuffle)
end
end

Après, Ruby s'y prête bien parce que les constantes sont faciles à définir (exactement comme une variable, mais en majuscule), mais si je faisais du PHP, c'est quand même ce que je ferais.


RE: [PHP] Trop de define tue-t-il les define ? - php_addict - 10-09-2011

tu aurais dit 6000 ca autait fait beaucoup mais 300 ca va

faut juste te trouver une convention de nommage interne à tes constantes

il parait que le define est lent, mais dans quelle mesure je ne saurais te le dire, et tu peut au pire optimiser avec apc define constants le jour où tu veut accélérer la définition des constantes

je me sert des constantes pour 2 choses:
- certaines données constantes évidement
- textes du jeu, car le jour où je souhaites traduire le jeu en grec ancien cela posera moins de souci


RE: [PHP] Trop de define tue-t-il les define ? - Sephi-Chan - 10-09-2011

(10-09-2011, 06:49 PM)php_addict a écrit : faut juste te trouver une convention de nommage interne à tes constantes

C'est l'un des trois défauts que je vois au constante de PHP : chiantes à définir, limitée à des valeurs scalaires et sans namespace (hors PHP 5.3).


(10-09-2011, 06:49 PM)php_addict a écrit : je me sert des constantes pour 2 choses:
- certaines données constantes évidement
- textes du jeu, car le jour où je souhaites traduire le jeu en grec ancien cela posera moins de souci

Quel genre de données ? Car ça peut être une mauvaise idée dans certains cas. ^^

Pour les textes, c'est une mauvaise idée. Ton système ne gèrera pas les pluriels, l'interpolation, les dates, etc.
Tu devrais utiliser un système d'internationalisation plus sérieux, comme Zend Translate, qui fonctionne avec une grande variété de backends.


RE: [PHP] Trop de define tue-t-il les define ? - Ter Rowan - 10-09-2011

Ok merci j avais craint une limitation


Ps qu est ce que j aime pas i phone pour le web^^


RE: [PHP] Trop de define tue-t-il les define ? - Sephi-Chan - 10-09-2011

T'es mauvais ! Faut profiter de l'auto-complétion ! Genre tu écris "javais" et il te met l'apostrophe tout seul. Genre tu appuies 2 fois sur espace pour faire un point. Smile
Ah c'est pas beau de vieillir ! Big Grin


RE: [PHP] Trop de define tue-t-il les define ? - niahoo - 10-09-2011

en php je range mes constantes dans des classes, je sais pas si c'est plus lent que define() mais en tout cas c'est mieux rangé.

sinon je ne vois pas de contraintes en en définir des centaines. sauf qu'à mon avis y a peut être quelque chose de plus pratique et modulable à faire.

à commencer par changer de langage, j'aime php pour faire des sites vitrines, mais sinon je trouve ça relou au delà


RE: [PHP] Trop de define tue-t-il les define ? - Ter Rowan - 11-09-2011

(10-09-2011, 07:51 PM)Sephi-Chan a écrit : T'es mauvais ! Faut profiter de l'auto-complétion ! Genre tu écris "javais" et il te met l'apostrophe tout seul. Genre tu appuies 2 fois sur espace pour faire un point. Smile
l auto complétion ca pue !! genre je m'étais pas aperçu que "trop de define tue t il les define" c était transformé en "trop de devine tu t ile les devine" ca voulait plus dire grand chose :bave:

(10-09-2011, 07:51 PM)Sephi-Chan a écrit : Ah c'est pas beau de vieillir ! Big Grin
c'est clair, la bedaine, le mal de dos, les pertes de mémoire, c'est moche la vieillesse :p