| Classe :: Meta Classe :: Meta est une automatisation de classe Perl, introspection et validation des données. |
Télécharger maintenant |
Classe :: Meta Classement & Résumé
- Licence:
- Perl Artistic License
- Nom de l'éditeur:
- David Wheeler
- Site Internet de l'éditeur:
- http://search.cpan.org/~dwheeler/
Classe :: Meta Mots clés
Classe :: Meta La description
Classe :: Meta est une automatisation de classe Perl, introspection et validation des données. Classe :: Meta est une automatisation de classe Perl, introspection et validation de données.Synopsisgener une classe: package myApp :: tructy; utiliser strict; Utilisez la classe :: Meta; Utilisez la classe :: Meta :: Types :: String; Utilisation Classe :: Meta :: Types :: Numérique; Commencez {# Créer une classe :: méta objet pour cette classe. My $ cm = classe :: meta-> nouvelle (clé => 'thingy'); # Ajouter un constructeur. $ cm-> add_constructor (nom => 'nouveau', créer => 1,); # Ajouter quelques attributs avec des méthodes générées. $ cm-> add_attribute (nom => 'uuid', authz => classe :: meta :: lecture, type => 'string', requis => 1, défaut => Sous {Données: UUID-> NOUVEAU-> créer_str},); $ cm-> add_attribute (nom => 'nom', is => 'string', obligatoire => 1, défaut => Undef,); $ cm-> add_attribute (nom => 'Âge', is => 'Integer', défaut => Undef,); # Ajouter une méthode personnalisée. $ cm-> add_mesthod (nom => 'chk_pass', vue => classe :: meta :: public,); $ cm-> construire; } Ensuite, utilisez la classe: utilisez MyApp :: Thingy; My $ Thingy = MyApp :: Thingy-> Nouveau; Imprimer "ID:", $ Thingy-> Id, $ /; $ chose-> nom ('Larry'); Imprimer "Nom:", $ Thingy-> Nom, $ /; $ chose-> Âge (42); Imprimer "Age:", $ Thingy-> Âge, $ /; ou utiliser l'API d'introspection: Utilisez MyApp :: Thingy; My $ classe = myApp :: trucy-> my_class; mon $ chose; Imprimer "Examen de l'objet de la classe", $ de classe-> package, $ /; Imprimer "NCONSTRUCTEURS: N"; Pour mon $ CORTOR ($ classe-> constructeurs) {imprimé "O", $ CTOR-> Nom, $ /; $ upsy = $ cors-> appel ($ classe-> paquet); } Imprimer "Nattributes: n"; Pour mes "attributs $ de classe->", "print" o ", $ attr-> nom," => ", $ attr-> obtenir ($ chose), $ /; if ($ attr-> authz> = classe :: meta :: set $ attr-> type eq 'string') {$ attr-> obtenir ($ chose, "hé là-bas!"); Imprimer "Changé en:", $ attr-> obtenir ($ chose), $ /; }} Imprimer "Nmethods: n"; Pour ma méthode de méthamphétamine de My $ ($ de classe->) {imprimé "o", $ méth-> nom, $ /; $ Meth--> appel ($ chose); } Classe :: Meta fournit une interface pour automatiser la création de classes PERL avec validation type de données d'attribut. Il diffère d'autres modules de ce type en ce sens qu'il comprend une API introspection pouvant être utilisée comme une interface unifiée pour toutes les classes de classe: méta-générées. En ce sens, il s'agit d'une mise en uvre du modèle de conception "façade". Exigences: · Perl
Classe :: Meta Logiciels associés