recherche

Introduction to Redbean

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 distribution

est 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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Quelles données peuvent être stockées dans une session PHP?Quelles données peuvent être stockées dans une session PHP?May 02, 2025 am 12:17 AM

PhpSessionsCanstorestrings, Numbers, Arrays, Andobject.1.Strings: TextDatalikeUserames.2.Numbers: IntegersorFloatsForCounters.3.arrays: listslikeshoppingcarts.4.Objects: complexestructuresthataReSerialized.

Comment démarrez-vous une session PHP?Comment démarrez-vous une session PHP?May 02, 2025 am 12:16 AM

TostartaphpSession, usessession_start () aTTheScript'sbeginning.1) PlaceItBeForeanyOutputToSetTheSessionCooKie.2) USESSIONSFORUSERDATALIKELOGINSTATUSORSHOPPINGSCARS.3) RegegeraSesessionIdStopreventfixationAtTACKS.4)

Qu'est-ce que la régénération des sessions et comment améliore-t-elle la sécurité?Qu'est-ce que la régénération des sessions et comment améliore-t-elle la sécurité?May 02, 2025 am 12:15 AM

La régénération de session fait référence à la génération d'un nouvel ID de session et à l'invalidation de l'ancien ID lorsque l'utilisateur effectue des opérations sensibles en cas d'attaques fixes de session. Les étapes de mise en œuvre incluent: 1. Détectez les opérations sensibles, 2. Générer un nouvel ID de session, 3. Détruiser l'ancien ID de session, 4. Mettre à jour les informations de session côté utilisateur.

Quelles sont les considérations de performances lors de l'utilisation de sessions PHP?Quelles sont les considérations de performances lors de l'utilisation de sessions PHP?May 02, 2025 am 12:11 AM

Les séances PHP ont un impact significatif sur les performances des applications. Les méthodes d'optimisation incluent: 1. Utilisez une base de données pour stocker les données de session pour améliorer la vitesse de réponse; 2. Réduire l'utilisation des données de session et stocker uniquement les informations nécessaires; 3. Utilisez un processeur de session non bloquant pour améliorer les capacités de concurrence; 4. Ajustez le temps d'expiration de la session pour équilibrer l'expérience utilisateur et la charge du serveur; 5. Utilisez des séances persistantes pour réduire le nombre de données de lecture et d'écriture.

En quoi les séances PHP diffèrent-elles des cookies?En quoi les séances PHP diffèrent-elles des cookies?May 02, 2025 am 12:03 AM

PhpsessionsareServer-côté, whileCookiesareclient-Side.1) SessionStoredataontheServer, aremoresecure, ethandleLargerData.2) CookiesstoredataontheClient, ArelessSecure, andlimitedIzeSize.USESESSIONSFORSENSEDATAANDCOOKIESFORNONNORNE-SENSENSITION, Client-Sidedata.

Comment PHP identifie-t-il la session d'un utilisateur?Comment PHP identifie-t-il la session d'un utilisateur?May 01, 2025 am 12:23 AM

Phpidentifiesauser'sessionusingssse cookiesand sessionids.1) whenSession_start () est calculé, phpgeneratesauquesseSessionIdStoredInacookIenameDPhpSesssIdonUser'sbrowser.2) thisIdallowsphptoreTrrieSeSessionDatafromTeserver.

Quelles sont les meilleures pratiques pour sécuriser les séances PHP?Quelles sont les meilleures pratiques pour sécuriser les séances PHP?May 01, 2025 am 12:22 AM

La sécurité des sessions PHP peut être obtenue grâce aux mesures suivantes: 1. Utilisez Session_RegeReate_ID () pour régénérer l'ID de session lorsque l'utilisateur se connecte ou est une opération importante. 2. Cryptez l'ID de session de transmission via le protocole HTTPS. 3. Utilisez session_save_path () pour spécifier le répertoire sécurisé pour stocker les données de session et définir correctement les autorisations.

Où les fichiers de session PHP sont-ils stockés par défaut?Où les fichiers de session PHP sont-ils stockés par défaut?May 01, 2025 am 12:15 AM

PhpSessionFilesArestorentheDirectorySpecifiedSession.save_path, généralement / tmponunix-likesystemsorc: \ windows \ temponwindows.tocustomzethis: 1) usession_save_path () tosetacustomDirectory, astumeit'swrit

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

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

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft