recherche
Maisondéveloppement back-endtutoriel phpConstruisez vos propres entités personnalisées à Drupal - Configuration

Build Your Own Custom Entities in Drupal - Setup

Points clés

  • Les entités de Drupal sont un moyen puissant d'organiser des données et peuvent être personnalisées pour représenter un type spécifique d'informations. Ce didacticiel montre comment créer un type d'entité personnalisé appelé projet qui comprend des attributs tels que le titre, la description et la date limite.
  • Pour créer un nouveau type d'entité, sa définition de schéma doit être déclarée, qui générera une table de données de données de données de données d'entité. Ce tutoriel fournit un exemple de code pour créer une table "Demo_Projects" avec quatre colonnes (ID, nom, description et échéance).
  • Le module API de l'entité doit être activé sur votre site et défini comme une dépendance pour les modules personnalisés, qui fournit de nombreuses capacités de traitement des entités qui manquent Drupal Core. Cela comprend la création de nouvelles entités, les enregistrer dans la base de données et les afficher.
  • Ce didacticiel explique également comment remplacer la méthode BuildContent () de la classe EntityApIController par défaut pour afficher votre entité, et comment créer une liste d'entités via la fonction d'assistance Entity_View (). La deuxième partie du tutoriel introduira la création d'une page pour afficher des entités de projet individuelles, les rendant dans le champ via l'interface utilisateur et les exposant aux vues pour les requêtes et la liste d'affichage.

Les entités Drupal sont un excellent moyen d'organiser des données. Si vous connaissez les nœuds, les termes de classification, les commentaires ou les utilisateurs, vous devez également savoir que ce sont des entités depuis Drupal 7. Un autre aspect important à leur sujet est qu'ils peuvent être sur le terrain via l'API Field. Dans ce tutoriel, je vais vous montrer comment définir votre propre type d'entité personnalisé et commencer avec. Pourquoi quelqu'un veut faire cela au lieu d'utiliser des nœuds? Parce que même s'ils sont super, les nœuds peuvent parfois être trop complexes. Vous n'avez peut-être pas besoin de nombreuses fonctionnalités, telles que des révisions ou des commentaires.

Dans ce didacticiel, nous définirons notre propre type d'entité personnalisé appelé "Project" pour représenter nos informations simples sur le projet (titre, description et échéance). Nous apprendrons ensuite un peu sur l'utilisation de ce type d'entité.

Pour continuer à apprendre, je suppose que vous savez comment écrire un module personnalisé de base (mon module est nommé démo). Vous pouvez trouver d'excellents tutoriels sur ce sujet ici. Continuez à écrire le fichier .info et à la création d'un fichier .module et .install vide. J'ai également configuré un référentiel GIT où vous pouvez obtenir tout le code source de ce didacticiel (une branche pour chaque section, deux sections seront publiées).

De plus, vous devez activer le module API Contrib de l'entité sur votre site et le définir comme dépendance du module personnalisé. Le module API de l'entité est très puissant lorsqu'il s'agit d'entités car il fournit de nombreuses fonctionnalités qui manquent le noyau Drupal.

Définissez notre propre type d'entité Drupal

La création d'un nouveau type d'entité nécessite d'abord de déclarer sa définition de schéma. C'est-à-dire d'écrire du code qui générera la table de base de données de données d'entité. Dans mon fichier démo.install, j'ai le code suivant:

/**
 * Implements hook_schema().
 */
function demo_schema() {

  $schema = array();

  $schema['demo_projects'] = array(
    'description' => 'The base table for the Project entity',
    'fields' => array(
      'id' => array(
        'description' => 'Primary key of the Project entity',
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'name' => array(
        'description' => 'Project name.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => FALSE,
      ),
      'description' => array(
        'description' => 'Project description.',
        'type' => 'text',
        'size' => 'big',
        'not null' => FALSE,
        'default' => NULL
      ),
      'deadline' => array(
        'description' => 'Project deadline.',
        'type' => 'int',
        'length' => 11,
        'not null' => FALSE,
      ),
    ),
    'primary key' => array('id'),
  );

  return $schema;
}

Il s'agit d'une simple implémentation de Hook_schema (). Ce n'est pas grave.

Ensuite, nous devons implémenter Hook_entity_info (). Nous pouvons spécifier beaucoup d'options dans ce crochet, mais voici les options les plus basiques et les plus requises (c'est dans le fichier Demo.Module):

/**
 * Implements hook_entity_info().
 */
function demo_entity_info() {

  $info = array();

  $info['project'] = array(
    'label' => t('Project'),
    'base table' => 'demo_projects',
    'entity keys' => array(
      'id' => 'id',
      'label' => 'name',
    ),
    'module' => 'demo',
    'entity class' => 'Entity',
    'controller class' => 'ProjectEntityController',
  );

  return $info;
}

Avec ce crochet, nous renvoyons une nouvelle clé dans le tableau $ info, qui représente le nom de la machine d'entité. Dans ce tableau, nous spécifions des options (nous ajouterons plus d'options pendant ce tutoriel). Nous allons maintenant nous en tenir à l'utilisation de balises (le nom lisible du type d'entité), la table de base qui stocke les données d'entité, les clés d'entité qui agissent comme des attributs de l'identificateur d'entité et le module qui spécifie quel module définit le type d'entité. Le dernier n'est pas obligatoire, mais est recommandé.

De cette manière, nous enregistrons notre propre type d'entité de base avec Drupal. Pour tester si cela fonctionne, activez le module pour la première fois et vérifiez si le tableau a été créé dans la base de données. Ensuite, remplissez-le de quelques lignes afin qu'il y ait quelque chose à utiliser:

INSERT INTO `demo_projects` (`id`, `name`, `description`, `deadline`)
VALUES
    (1, 'Summer House', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397501105),
    (2, 'Winter House', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397501132);

Enfin, utilisez Hook_Menu () pour enregistrer un chemin (pour tous les chemins uniquement pour les tests) en utilisant Drupal et coller ce qui suit dans sa fonction de rappel:

$projects = entity_load('project', array(1, 2));
dpm($projects);
return 'Some string';

Tout d'abord, nous utilisons la fonction Entity_Load () pour charger des entités du projet avec IDS 1 et 2, puis nous utilisons la fonction DPM () (alors assurez-vous que Devel est activé sur votre site pour les tests) pour les imprimer dans écran supérieur. N'oubliez pas que la fonction de rappel de la page doit renvoyer quelque chose, sinon elle ne sera pas construite.

Maintenant, si vous accédez à cette page, vous verrez des données pour 2 entités dans la base de données de Krumo.

Alternativement, vous pouvez utiliser la classe EntityFieldQuery pour interroger de nouvelles entités en fonction de toutes les propriétés que vous souhaitez (pas seulement ID). Pour plus d'informations sur le fonctionnement, vous pouvez consulter ce tutoriel SitePoint, qui vous aidera à démarrer.

Classes et contrôleurs d'entités

Malheureusement, le noyau Drupal ne fournit pas trop de fonctions d'assistance pour gérer les entités (entity_load () est presque unique). Cependant, le module API de l'entité comble cette lacune.

Pour utiliser ses fonctionnalités, nous devons modifier les informations d'entité que nous avons déclarées plus tôt et spécifier la classe PHP qui peut être utilisée pour gérer l'entité. Maintenant, nous allons ajouter deux clés supplémentaires au tableau de projet tapé dans l'implémentation hook_entity_info ():

Le code susmentionné contient déjà 'entity class' => 'Entity', 'controller class' => 'ProjectEntityController',

EntityApIController Class (situé dans le fichier entité.controller.inc du module) fournit des valeurs par défaut raisonnables pour les entités de traitement. Il étend la classe Drupal Core DrupaldefaultEntityController par défaut et est responsable (entre autres choses) effectuant des opérations CRUD.

Les deux classes peuvent être étendues dans votre module personnalisé pour ajuster les fonctionnalités (telles que l'interrogation, le chargement ou l'affichage des entités). Nous verrons comment faire cela plus tard.

Mais d'abord, je veux vous montrer comment sauver une nouvelle entité. Actuellement, il y a 2 enregistrements dans ma base de données avec IDS 1 et 2. Je souhaite ajuster le code que nous avons écrit dans la fonction de rappel de la page de test ci-dessus pour créer une nouvelle entité avec ID 3 sans lui. Cela pourrait ressembler à ceci:

/**
 * Implements hook_schema().
 */
function demo_schema() {

  $schema = array();

  $schema['demo_projects'] = array(
    'description' => 'The base table for the Project entity',
    'fields' => array(
      'id' => array(
        'description' => 'Primary key of the Project entity',
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'name' => array(
        'description' => 'Project name.',
        'type' => 'varchar',
        'length' => 255,
        'not null' => FALSE,
      ),
      'description' => array(
        'description' => 'Project description.',
        'type' => 'text',
        'size' => 'big',
        'not null' => FALSE,
        'default' => NULL
      ),
      'deadline' => array(
        'description' => 'Project deadline.',
        'type' => 'int',
        'length' => 11,
        'not null' => FALSE,
      ),
    ),
    'primary key' => array('id'),
  );

  return $schema;
}

Comme vous pouvez le voir, nous essayons maintenant de charger 3 entités du projet et de vérifier si la troisième entité existe. S'il n'existe pas, nous utiliserons la fonction d'assistance Entity_Create () fournie par l'API de l'entité, définirons la propriété sur une valeur aléatoire, puis utilisez la méthode Save () sur l'entité pour persister dans la base de données. Cette méthode est fournie par la classe d'entité, et son travail consiste à appeler la méthode Save () sur la classe de contrôleur que nous avons définie ci-dessus. Cette méthode effectuera la logique requise pour persister l'entité. Mais tout cela se produit dans les coulisses, nous n'avons pas à nous en soucier.

Si vous rechargez la page, vous ne devriez voir que les 2 entités du projet renvoyées, mais si la deuxième fois, vous devriez en avoir 3.

Couvrir la classe d'entité

La dernière chose que je veux vous montrer dans cette partie de ce tutoriel est de savoir comment afficher votre entité. Pour ce faire, nous nous en tiendrons à la fonction de rappel de page que nous avons utilisée et en faisons une vraie liste.

Tout d'abord, nous devons remplacer la méthode buildContent () de la classe entityapiController par défaut. La raison en est que le contrôleur ne peut pas faire d'hypothèses sur nos données, nous devons donc fournir des informations sur la façon de l'afficher. Tout d'abord, déclarons la classe de contrôleur qui étend la classe précédente:

/**
 * Implements hook_entity_info().
 */
function demo_entity_info() {

  $info = array();

  $info['project'] = array(
    'label' => t('Project'),
    'base table' => 'demo_projects',
    'entity keys' => array(
      'id' => 'id',
      'label' => 'name',
    ),
    'module' => 'demo',
    'entity class' => 'Entity',
    'controller class' => 'ProjectEntityController',
  );

  return $info;
}

J'ai sélectionné le nom de classe ProjectEntityController, vous devez vous assurer de remplacer la valeur que vous définissez pour la clé de classe de contrôleur dans l'implémentation hook_entity_info (). N'oubliez pas.

Dans cette classe, nous pouvons copier le nom de la méthode de la classe d'origine et le faire renvoyer ce que sa classe parent reviendra:

Dans cette classe, nous pouvons copier le nom de la méthode de la classe d'origine et le faire renvoyer ce que sa classe parent reviendra. Nous avons essentiellement ajouté deux nouveaux articles au tableau. Le premier enveloppera la description avec <div>, et le second sortira la date formatée entre les étiquettes de paragraphe. Ceci est le thème de base Drupal, si vous ne comprenez pas ce qui se passe ici, veuillez le revoir. Mais vous remarquerez le nom du projet manquant. Drupal le rendra automatiquement car nous le spécifions comme une balise dans la clé d'entité implémentée par Hook_entity_info (). La dernière étape consiste à aller à notre fonction de rappel de page et à le faire afficher notre entité. Une voie rapide (à des fins de démonstration uniquement): <pre class='brush:php;toolbar:false;'>INSERT INTO `demo_projects` (`id`, `name`, `description`, `deadline`) VALUES (1, 'Summer House', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397501105), (2, 'Winter House', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397501132);</pre> <p> Comme auparavant, nous chargeons d'abord l'entité avec l'ID correspondant. Nous les exécutons ensuite via la fonction Entity_View (), qui appellera éventuellement la méthode BuildContent () que nous venons d'éclairer. Cette fonction renvoie une liste de tableaux rendus pour chaque entité. Nous rendons chacun et stockons le résultat dans le tableau de sortie $, puis nous le concatenons et le retournons. </p> <p> Vous pouvez actualiser la page et vous devriez voir une liste de toutes les entités que vous avez chargées. Assurez-vous que le cache est effacé afin que les modifications soient visibles. </p> <h2 id="Conclusion"> Conclusion </h2> <p> Dans ce tutoriel, nous commençons à apprendre les entités de Drupal en définissant nos propres types d'entités dans le code. Nous avons appris à rédiger des définitions de schéma pour les données qu'ils représentent et à les enregistrer auprès de Drupal. Ensuite, nous voyons la puissance d'utiliser le module API Contrib de l'entité pour gérer les entités d'une manière orientée objet. </p> <p> Dans la deuxième partie de ce tutoriel, nous examinerons trois aspects principaux. Tout d'abord, nous créerons des pages pour afficher des entités de projet individuelles et lancer l'interface de gestion pour la gestion des projets. Deuxièmement, nous le rendrons sur le plan de l'interface utilisateur. Troisièmement, nous l'exposerons aux vues afin que nous puissions faire des requêtes et des affichages de liste appropriés. restez à l'écoute! </p> <h2 id="FAQ-sur-la-construction-d-entités-personnalisées-à-Drupal"> FAQ sur la construction d'entités personnalisées à Drupal </h2> <h3 id="Quelles-sont-les-conditions-préalables-pour-créer-une-entité-personnalisée-Drupal"> Quelles sont les conditions préalables pour créer une entité personnalisée Drupal? </h3> <p> Avant de commencer à créer des entités personnalisées Drupal, vous devez avoir une compréhension de base de l'API de l'entité de Drupal. Vous devez également être familier avec les concepts de PHP et de programmation orientée objet. De plus, vous devriez avoir mis en place un environnement de développement Drupal. Cela comprend l'installation et la configuration de Drupal sur une machine ou un serveur local. </p> <h3 id="Comment-créer-une-entité-de-contenu-personnalisée-avec-un-bundle-à-Drupal"> Comment créer une entité de contenu personnalisée avec un bundle à Drupal? </h3> <p> La création d'une entité de contenu personnalisée avec un bundle dans Drupal implique plusieurs étapes. Tout d'abord, vous devez définir votre entité et ses propriétés dans un module personnalisé. Ensuite, vous devez créer un formulaire pour ajouter et modifier votre entité. Après cela, vous devez définir l'itinéraire pour les opérations de l'entité. Enfin, vous devez créer un constructeur de vue pour afficher votre entité. </p> <h3 id="Quelle-est-la-différence-entre-l-entité-de-contenu-et-l-entité-de-configuration-dans-Drupal"> Quelle est la différence entre l'entité de contenu et l'entité de configuration dans Drupal? </h3> <p> Dans Drupal, les entités de contenu sont des fragments de contenu qui peuvent être créés, modifiés et supprimés par les utilisateurs. Les exemples incluent les nœuds, les utilisateurs et les commentaires. D'un autre côté, une entité de configuration est un fragment de configuration stocké dans une base de données et peut être exporté vers le code. Les exemples incluent des vues, des styles d'image et des rôles utilisateur. </p> <h3 id="Comment-créer-le-type-d-entité-de-contenu-dans-Drupal"> Comment créer le type d'entité de contenu dans Drupal 8? </h3> <p> La création d'un type d'entité de contenu dans Drupal 8 implique la définition de votre entité et de ses propriétés dans un module personnalisé. Vous devez également créer un formulaire pour ajouter et modifier votre entité, définir l'itinéraire pour les opérations d'entité et créer un constructeur de vue pour afficher votre entité. </p> <h3 id="Puis-je-créer-des-entités-personnalisées-dans-Drupal-à-l-aide-du-module-API-Entity"> Puis-je créer des entités personnalisées dans Drupal à l'aide du module API Entity? </h3> <p> Oui, vous pouvez créer des entités personnalisées dans Drupal à l'aide du module API Entity. Ce module fournit un moyen unifié de gérer les entités et leurs propriétés. Il fournit également des API pour effectuer des opérations sur des entités telles que la création, la lecture, la mise à jour et la suppression. </p> <h3 id="Quels-sont-les-avantages-de-la-création-d-entités-douanies-Drupal"> Quels sont les avantages de la création d'entités douanies Drupal? </h3> <p> La création d'entités personnalisées Drupal vous permet de définir vos propres structures de données et votre logique métier. Cela peut rendre votre site plus efficace et gérable. Les entités personnalisées vous permettent également de profiter de l'API de l'entité de Drupal, qui fournit des outils puissants pour la manipulation des entités. </p> <h3 id="Comment-ajouter-des-champs-aux-entités-personnalisées-de-Drupal"> Comment ajouter des champs aux entités personnalisées de Drupal? </h3> <p> Pour ajouter des champs aux entités personnalisées de Drupal, vous devez utiliser l'API de champ. Cela implique de définir vos champs dans la méthode de définition de champ de base de l'entité. Vous pouvez également utiliser le module d'interface utilisateur de champ pour ajouter des champs aux entités via l'interface de gestion Drupal. </p> <h3 id="Comment-afficher-des-entités-personnalisées-à-Drupal"> Comment afficher des entités personnalisées à Drupal? </h3> <p> Pour afficher une entité personnalisée dans Drupal, vous devez créer un constructeur de vues pour votre entité. Cela implique de définir une classe qui étend la classe EntityViewBuilder et d'implémenter la méthode de vue. Vous pouvez également utiliser le module Views pour créer des vues personnalisées des entités. </p> <h3 id="Comment-créer-un-formulaire-pour-ajouter-et-éditer-des-entités-personnalisées-dans-Drupal"> Comment créer un formulaire pour ajouter et éditer des entités personnalisées dans Drupal? </h3> <p> Pour créer un formulaire dans Drupal pour ajouter et modifier des entités personnalisées, vous devez définir une classe de formulaire pour votre entité. Cela consiste à étendre la classe EntityForm et à implémenter le formulaire, à valider et à soumettre des méthodes. </p> <h3 id="Comment-supprimer-une-entité-personnalisée-à-Drupal"> Comment supprimer une entité personnalisée à Drupal? </h3> <p> Pour supprimer une entité personnalisée dans Drupal, vous devez utiliser la méthode de suppression de l'API de l'entité. Cela implique le chargement de votre entité, l'appel de la méthode de suppression, puis l'enregistrement de votre entité. Vous pouvez également utiliser la méthode DeleteMultiple de l'API Entity pour supprimer plusieurs entités à la fois. </p> </div>

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
Travailler avec les données de session Flash dans LaravelTravailler avec les données de session Flash dans LaravelMar 12, 2025 pm 05:08 PM

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-

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API RESTCurl dans PHP: Comment utiliser l'extension PHP Curl dans les API RESTMar 14, 2025 am 11:42 AM

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

Misque de réponse HTTP simplifié dans les tests LaravelMisque de réponse HTTP simplifié dans les tests LaravelMar 12, 2025 pm 05:09 PM

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' =>

12 meilleurs scripts de chat PHP sur Codecanyon12 meilleurs scripts de chat PHP sur CodecanyonMar 13, 2025 pm 12:08 PM

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é

Comment s'inscrire et utiliser les fournisseurs de services LaravelComment s'inscrire et utiliser les fournisseurs de services LaravelMar 07, 2025 am 01:18 AM

Les fournisseurs de services et les fournisseurs de services de Laravel sont fondamentaux pour son architecture. Cet article explore les conteneurs de services, détaille la création du fournisseur de services, l'enregistrement et démontre l'utilisation pratique avec des exemples. Nous commencerons par un ove

PHP Logging: meilleures pratiques pour l&amp;#39;analyse du journal PHPPHP Logging: meilleures pratiques pour l&amp;#39;analyse du journal PHPMar 10, 2025 pm 02:32 PM

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&#39;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

Expliquez le concept de liaison statique tardive en PHP.Expliquez le concept de liaison statique tardive en PHP.Mar 21, 2025 pm 01:33 PM

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

Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées.Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées.Mar 28, 2025 pm 05:12 PM

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.

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

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

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),

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel