Download the PHP package falseclock/dbd-php-entity without Composer

On this page you can find all versions of the php package falseclock/dbd-php-entity. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package dbd-php-entity

DBD-PHP-Entity

scrutinizer build Coverage Status PHP Version Require

NOTICE: readme находится в процессе написания.

Данная библиотека позволяет легко преобразовывать ассоциативные массивы в объекты по заранее предопределенным структурам (мапингу), иными словами реализует DTO. Изначально проект реализовывался как ORM библиотека, но не ограничивается этим. С помощью библиотеки можно описывать любые структурированные данные, а не только таблицы и их поля.

Принцип действия на пальцах

Представим, у вас есть таблица, с несколькими полями:

Данные из этой таблицы извлекаются через некий PDO и у вас есть именованный массив.

Чтобы обращаться к элементам, вам явно нужно оказывать наименование поля:

Если заранее создать маппинг, то мы можем получит объект вместо именованного массива:

Это дает нам возможность не привязываться к наименованиям полей. Только ли для табличных данных подходит данная библиотека? Нет. Можно описывать любые структуры, например YAML файла или просто какие-то JSON данные. Нужны вложенные структуры? Нужны геттеры и сэттеры? Нужна предварительная конвертация данных? Это все есть, и даже больше. Можно контролировать целостность данных, вложенность структур, скрывать поля, если вы хотите отдавать их во внешную среду и много много чего другого. Поможет в вашем проекте? Тогда вперед с установки.

Установка

Оглавление

Основные классы

Описание полей

Вспомогательные классы

Вспомогательные классы

Mapper

Любое описание модели начинается с наследования этого абстрактного класса. Дочерний класс должен отвечать нескольким простым правилам:

  1. Все переменные с типом Column объявляются как public.
  2. Любые другие переменные кроме Column, объявляются как protected.
  3. Класс не должен содержать private переменных.
  4. Класс не должен иметь методы.
  5. Константа ANNOTATION должна быть переопределена.
  6. Название класса должно иметь тоже самое название что и основной класс Entity с постфиксом Map.
  7. Оба класс Entity и Mapper должны быть в одном namespace.

Пример

Постфикс Map, при желании, можно переопределить через константу Maper::POSTFIX

Все потомки Mapper класса является синглтонами и вызываются через статичный метод me.

Публичные методы

__get

__get — магический метод для доступа к protected переменным класса.

Описание

В некоторых случаях, при необходимости обращения к непубличным переменным в IDE, можно через phpdoc в заголовке класса прописать переменную через @property, которая доступна через магический метод. Если обратиться к несуществующей переменной, будет выброшено исключение.

Пример


findColumnByOriginName

findColumnByOriginName — получение экземпляра класса Column через ключ ассоциативного массива.

Описание

Может быть использован, если необходимо получить информацию о том как описывается то или иное public поле в Mapper классе.


getAllVariables

getAllVariables — получение всех определенных переменных класса

Описание

Полезная функция, если имеется необходимость на основании описания полей сформировать скрипт создания таблицы в реляционной базе.


getAnnotation

getAnnotation — получение константы ANNOTATION

Описание


getColumns

getColumns — получение массива стандартных полей

Описание

Данная функция возвращает массив Columns, которые определены в Mapper классе. Следует помнить, что комплексные поля объявляются как public.


getComplex

getComplex — получение массива комплексных полей

Описание

Данная функция возвращает массив Complex, которые определены в Mapper классе. Следует помнить, что комплексные поля объявляются как protected.


getConstraints

getConstraints — получение массива ограничений

Описание

Данная функция возвращает массив Constraint, которые определены в Mapper классе. Следует помнить, что ограничения объявляются как protected.


getEmbedded

getEmbedded — получение массива встроенных полей

Описание

Данная функция возвращает массив Embedded, которые определены в Mapper классе. Следует помнить, что встроенные поля объявляются как protected.


getEntityClass

getEntityClass — получение класса, который использует данный маппинг

Описание

Следует осторожно использовать данную функцию, если вы не объявили Entity и Mapper в одном namespace


getOriginFieldNames

getOriginFieldNames — получение массива объявленных public полей

Описание

Данная функция возвращает ассоциативный массив, где ключ — наименование переменной класса Mapper, а значение — наименование поля.


All versions of dbd-php-entity with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
ext-json Version *
myclabs/php-enum Version ^1.7.7
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package falseclock/dbd-php-entity contains the following files

Loading the files please wait ....