Points de base
- RedbeanPHP est un ORM (mappeur relationnel d'objet) qui peut créer et modifier dynamiquement les schémas de base de données sous-jacents, ce qui est idéal pour le prototypage et l'accélération du développement.
- redbeanphp vous permet de créer un objet (ou "bean") et de l'enregistrer dans une base de données, et il ajuste automatiquement le modèle pour s'adapter même s'il n'y a pas de table correspondante.
- RedbeanPHP prend en charge les relations entre les objets à travers le concept de "posséder" des objets liés, y compris des relations individuelles, un à plusieurs et plusieurs à plusieurs.
- "Mode de streaming" de RedbeanPHP permet un réglage automatique du schéma de base de données lorsque les objets changent, mais il est recommandé de passer en "mode gelé" en production pour améliorer les performances et la sécurité.
- Bien que RedbeanPHP soit un excellent outil de prototypage et d'itération rapide, une prudence est également requise lorsqu'elle est utilisée dans les environnements de production, tels que la vérification des types de données de colonne, des clés étrangères, des relations et des index.
Introduction à redbeanphp
Dans le développement rapide des applications (RAD) et le prototypage, il existe de nombreux outils pour vous aider à démarrer rapidement. Des départs rapides aux mini-cadres, des outils de construction comme le compositeur aux installateurs en un clic, et bien sûr ORM - il existe de nombreuses façons d'accélérer le développement. Nous nous concentrerons sur RedbeanPHP, un ORM unique qui est parfait pour le prototypage.
débutant de redbeanphp
RedbeanPHP est un ORM (mappeur relationnel d'objet), mais c'est plus qu'un simple ORM - il peut créer et modifier dynamiquement le schéma de base de données sous-jacent. Traditionnellement, vous utiliseriez ORM comme emballage pour les schémas de base de données pré-planifiés et préexistants. C'est OK pour la plupart des projets, mais lorsque vous prototypant (ou pensez en le faisant), le faire pour vous en arrière-plan peut accélérer davantage.
Lorsque vous créez un objet (ou bean) avec RedbeanPHP, le schéma s'ajustera automatiquement pour s'adapter tant que vous l'enregistrez dans la base de données. Cela s'applique même si vous essayez d'enregistrer un objet qui n'a pas de table correspondante!
Installation
La façon la plus simple d'installer RedbeanPHP est de télécharger le package tout-en-un. Ensuite, il vous suffit d'introduire un seul fichier rb.php
.
Vous pouvez également l'installer via le compositeur;
Distribuez le bean
La première étape de l'utilisation de RedbeanPHP consiste à "distribuer" un bean - c'est essentiellement un objet. Notez que pour le reste de cet article, j'utilise "Bean" et objets de manière interchangeable.
La distributionest effectuée par la méthode statique de la classe Redbean supérieure "R", qui prend le type en tant que paramètre.
Exemple:
$user = R::dispense('user');
Cela créera un objet utilisateur vide à laquelle vous pouvez attribuer des propriétés. Vous pouvez également distribuer plusieurs haricots simultanément en ajoutant le nombre requis comme deuxième paramètre:
$users = R::dispense('user', 10);
À ce stade, peu importe si un tableau existe dans la base de données pour l'enregistrer; tant que nous essayons de le stocker, RedbeanPhp le gérera.
Essayons-le - veuillez noter l'utilisation de la méthode statique store
, qui est utilisée pour écrire dans la base de données:
$user = R::dispense('user');
Dans la plupart des orms, cela échoue si vous n'avez pas créé de table pour enregistrer l'utilisateur. Cependant, avec RedbeanPHP, cela réussira car cela créera le tableau pour vous. Si vous regardez votre base de données à ce stade, vous devriez voir une table comme ceci:
$users = R::dispense('user', 10);
La convention de dénomination est très stricte en raison du besoin; il s'agit d'une représentation minuscule singulière du type que vous spécifiez.
Voyons maintenant comment le modèle change tout en itérant. Les enregistrements des utilisateurs peuvent nécessiter un champ de mot de passe - mais nous avons oublié de les créer.
si vous faites ceci:
$user->name = 'Joe Bloggs'; $user->email = 'joe.bloggs@example.com'; $id = R::store($user); print $id;
Cette fois, RedbeanPHP sait stocker les utilisateurs, mais la table de base de données ne peut pas s'adapter à de nouveaux champs. C'est OK - il en ajoute juste un, vos performances ressemblent à ceci:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255)</code>
(Le contenu suivant est similaire au texte d'origine, mais la structure de la phrase et les ajustements des mots ont été effectués, et la position et le format de l'image sont maintenus inchangés)
Type de données de champ
RedbeanPHP essaiera de deviner le type de données du champ en fonction des informations que vous fournissez. Donc, si vous le faites:
$user->password = 'secret'; R::store($user);
Vous constaterez que le champ d'âge a été créé comme minuscule.
Si le type de champ est insuffisant plus tard, RedbeanPHP le changera dynamiquement. Si vous essayez maintenant d'attribuer 3000 à l'âge, la colonne sera changée en int. Si vous épelez le nom comme "trente", il changera pour varchar. Définissez le champ Varchar sur plus de 255 caractères, il deviendra un champ de texte, etc.
Trouver le bean
Vous pouvez utiliser la méthode load
pour charger un objet spécifique par clé primaire:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255) password varchar(255)</code>
Vous pouvez utiliser la méthode batch
pour charger plusieurs objets à la fois (appuyez sur la touche primaire):
$user->age = 30; R::store($user);
Cela renverra un tableau de haricots.
Vous pouvez également utiliser SQL pour trouver des haricots. Le deuxième paramètre de la méthode find
est essentiellement SQL en commençant par la clause WHERE, à l'exclusion du mot-clé Where lui-même. Par exemple, pour trouver des utilisateurs de moins de 20 ans:
$user = R::load('user', 1);
Notez que nous lions les paramètres, donc le troisième paramètre est un tableau. Cela renverra un tableau de haricots utilisant son ID comme clé.
Vous pouvez ajouter plus de clauses à SQL, telles que:
Count
Vous pouvez utiliser la méthode count
pour trouver le nombre d'enregistrements:
$users = R::batch('user', array(1, 2, 3));
supprimer
Pour supprimer un seul haricot, utilisez trash
:
$users = R::find('user', 'age < 20');
Pour supprimer plusieurs haricots d'un type spécifique, utilisez trashAll
:
$number_of_users = R::count('user');
Pour supprimer tous les grains d'un type spécifique, utilisez wipe
:
R::trash($user);
ou, pour tout supprimer - cela peut être utile lors du prototypage - vous pouvez utiliser nuke
:
R::trashAll('user');
relation
Comme tout ORM, la relation entre les objets est prise en charge.
Les relations un-à-plusieurs utilisent le concept de «posséder» des objets liés à la référence. Par exemple, si la commande n'a qu'un seul utilisateur, l'utilisateur est appelé «propre» les commandes. En utilisant des noms de variables spécifiques, nous pouvons créer cette relation comme ceci:
$user = R::dispense('user');
L'élément clé ici est l'attribut ownOrders
. Si vous vérifiez votre base de données maintenant, vous devez constater que RedbeanPHP a ajouté le champ user_id
à la table de commande, ainsi que les touches étrangères correspondantes.
Les utilisateurs qui "possèdent" l'ordre peuvent simplement accéder en tant qu'attributs, par exemple:
$users = R::dispense('user', 10);
pour démontrer une relation plusieurs à plusieurs, créons certains personnages:
$user->name = 'Joe Bloggs'; $user->email = 'joe.bloggs@example.com'; $id = R::store($user); print $id;Les rôles
ne sont pas seulement des utilisateurs individuels; Ainsi, pour attribuer les deux premiers rôles à l'utilisateur et établir une relation dans la base de données, nous pouvons le faire:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255)</code>
Cette fois, vous devriez trouver un nouveau tableau appelé role_user
qui définit cette relation comme une relation plusieurs à plusieurs.
Vous pouvez obtenir le rôle qui appartient à l'utilisateur en lisant l'attribut:
$user->password = 'secret'; R::store($user);
Cela retarde le chargement des rôles la première fois qu'ils sont accessibles.
Les relations y ont beaucoup plus, y compris l'ajout d'attributs aux relations utilisant link
, le filtrage par lien, le chargement urgent, etc. - Veuillez vérifier la documentation pour plus de détails.
modèle
Vous pouvez créer des modèles pour correspondre aux types de haricots, suivez simplement certaines conventions de dénomination. Le modèle se connecte ensuite au haricot à l'aide du fusible;
La convention est simple; utilisez des soulignements pour séparer le "modèle" du type, tel que Model_Type
. Par exemple, pour créer un modèle pour un utilisateur, il vous suffit de faire ce qui suit:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255) password varchar(255)</code>Après avoir défini le modèle, vous pouvez implémenter de nombreuses méthodes qui seront appelées à différents moments du cycle de vie du haricot. Le tableau suivant illustre le mappage entre l'opération CRUD et le "crochet" que vous pouvez implémenter:
Par exemple, vous pouvez ajouter la validation en implémentant update()
:
$user = R::dispense('user');
Vous pouvez bien sûr également créer vos propres méthodes ainsi que personnaliser les getters.
Base de données de requête
Vous pouvez exécuter la requête SQL d'origine comme ceci:
$users = R::dispense('user', 10);
Vous pouvez retourner un tableau multidimensionnel de lignes comme ceci:
$user->name = 'Joe Bloggs'; $user->email = 'joe.bloggs@example.com'; $id = R::store($user); print $id;
De plus, vous pouvez utiliser la liaison des paramètres:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255)</code>
Vous pouvez obtenir une seule colonne comme ceci:
$user->password = 'secret'; R::store($user);
Vous pouvez également obtenir le tableau associatif en utilisant deux colonnes de la table:
<code>user ---- id int(11) UN PK AI name varchar(255) email varchar(255) password varchar(255)</code>
Déployez votre application
Bien qu'il soit sans doute le meilleur pour le prototypage (ou au moins le développement) - vous pouvez suivre certaines étapes, il n'y a aucune raison pour que RedbeanPHP ne puisse pas continuer à être utilisé dans des environnements de production.
Le mécanisme du mode de mise à jour dynamique de RedBeanPHP est appelé "mode de streaming"; Cependant, vous pouvez le désactiver en le «congelant»:
$user->age = 30; R::store($user);
Lorsque vous entrez en production, vous devez suivre les étapes suivantes:
- Vérifier le type de données de colonne
- Vérifiez les clés et relations étrangères
- Vérifiez l'index - RedbeanPHP créera certains index - et les modifiera selon les besoins
Résumé
Dans cet article, j'ai introduit RedbeanPHP, un moyen pratique de démarrer votre processus de développement en vous permettant de traiter d'abord les modèles de domaine sans avoir à construire le modèle sous-jacent. Il reste à voir s'il est adapté aux environnements de production - mais c'est un excellent gadget pour le prototypage et l'itération rapide. Je ne couvre pas beaucoup, alors assurez-vous de consulter la documentation.
redbeanphp faq
Quelles sont les principales fonctions de RedbeanPHP?
RedbeanPHP est un outil de cartographie d'objet-relation léger et léger (ORM) qui fournit une gamme de fonctionnalités conçues pour simplifier l'interaction de la base de données. Il est connu pour son approche "Configuration zéro", ce qui signifie qu'elle ne nécessite que une configuration et une configuration minimales. Il construit automatiquement le schéma de base de données en fonction des objets que vous créez et peut ajuster le schéma selon les besoins lorsque l'objet change. RedbeanPHP prend également en charge le mode de streaming et le mode de congélation, vous permettant de basculer facilement entre les environnements de développement et de production. Il comprend une structure d'arbre intégrée et prend en charge la mise en conserve et la distribution des haricots pour un stockage et une récupération faciles d'objets.
Comment RedbeanPHP se compare-t-il aux autres outils ORM?
Par rapport aux autres outils ORM, RedbeanPHP se distingue par sa simplicité et sa facilité d'utilisation. Il ne nécessite pas de fichiers de configuration, de classes SQL ou de modèle. Cela en fait un excellent choix pour les débutants ou les projets où l'ORM complet semble redondant. Cependant, il offre toujours des fonctionnalités puissantes telles que la modification automatique du mode et la structure des arbres, ce qui le rend suffisant pour des projets plus complexes.
Comment installer et configurer RedbeanPHP?
RedbeanPHP peut être installé via Composer (un outil de gestion de dépendance PHP populaire). Après l'installation, vous pouvez configurer RedBeanPHP en incluant le fichier RedBeanPHP dans le script et en configurant une connexion de base de données. RedbeanPHP créera et modifiera automatiquement les tables en fonction de vos objets.
Qu'est-ce que le "mode de streaming" dans redbeanphp?
Le mode de streaming est une caractéristique de RedbeanPHP qui lui permet d'ajuster automatiquement le schéma de base de données lorsque les objets changent. Cela peut gagner beaucoup de temps pendant le développement car vous n'avez pas à modifier manuellement la base de données chaque fois que vous modifiez l'objet. Cependant, il est recommandé de passer en "mode gel" dans les environnements de production pour des raisons de performance et de sécurité.
Comment RedbeanPHP gère-t-il les relations entre les objets?
RedbeanPHP prend en charge plusieurs types de relations entre les objets, notamment un à un, un à plusieurs et plusieurs à plusieurs. Ces relations sont gérées en utilisant "Bean" (un objet simple représentant des lignes dans une table de base de données). Vous pouvez facilement s'associer les haricots les uns aux autres pour représenter les relations entre les objets.
Puis-je utiliser RedbeanPHP avec ma base de données existante?
Oui, RedbeanPHP peut être utilisé avec les bases de données existantes. Cependant, veuillez noter que la fonction de modification du mode automatique de RedbeanPHP peut modifier la structure de la base de données, il est donc recommandé de sauvegarder la base de données avant d'utiliser RedbeanPHP.
RedbeanPHP convient-il aux projets importants et complexes?
Bien que RedbeanPHP soit connu pour sa simplicité et sa facilité d'utilisation, il offre également des fonctionnalités puissantes qui le rendent également adapté à des projets grands et complexes. Sa modification de mode automatique, la prise en charge de divers types de relations et sa structure d'arborescence intégrée sont toutes très utiles dans les grands projets. Cependant, pour des projets très grands ou complexes, un outil ORM plus complet peut être plus approprié.
Comment RedbeanPHP gère-t-il la sécurité?
redbeanphp contient plusieurs fonctionnalités conçues pour améliorer la sécurité. Il utilise des instructions de prétraitement pour aider à prévenir les attaques d'injection SQL et recommande d'utiliser le "mode de gel" en production pour empêcher les changements de schéma inattendus. Cependant, comme pour n'importe quel outil, il est important de suivre les meilleures pratiques de sécurité et de maintenir RedbeanPHP à jour.
Qu'est-ce que "Bean Can" dans RedbeanPHP?
La mise en conserve du haricot est une caractéristique de RedbeanPHP qui vous permet de stocker et de récupérer l'ensemble du haricot (objet) en même temps. Cela peut être un moyen pratique de gérer de grandes quantités de données, et peut également aider à améliorer les performances en réduisant le nombre de requêtes de base de données.
Puis-je utiliser RedbeanPHP sans compositeur?
Bien que le compositeur soit la méthode recommandée pour installer RedbeanPHP, vous pouvez également télécharger et inclure des fichiers RedbeanPHP directement dans votre script. Cependant, l'utilisation du compositeur facilite la gestion et la mise à jour de RedbeanPHP et toutes les autres dépendances qu'un projet peut avoir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

La journalisation PHP est essentielle pour surveiller et déboguer les applications Web, ainsi que pour capturer des événements critiques, des erreurs et un comportement d'exécution. Il fournit des informations précieuses sur les performances du système, aide à identifier les problèmes et prend en charge le dépannage plus rapide

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Alipay Php ...

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Dreamweaver Mac
Outils de développement Web visuel

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux