Download the PHP package baraja-core/doctrine without Composer
On this page you can find all versions of the php package baraja-core/doctrine. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download baraja-core/doctrine
More information about baraja-core/doctrine
Files in baraja-core/doctrine
Package doctrine
Short Description Doctrine port to Nette 3.0 with maximal performance.
License
Homepage https://github.com/baraja-core/doctrine
Rated 5.00 based on 1 reviews
Informations about the package doctrine
Baraja Doctrine database π
A simple and easy to use, maximum performance database layer with connection to Doctrine, which allows you to use all the advantages of OOP and also has support for Nette 3.
This package automatically installs Doctrine to your project (also sets everything up in the configuration) and runs stably.
π Best debug Tracy panel
This package contains the most advanced native tools for debugging your application and SQL queries. You can very easily view the performed queries, click directly on the place of their original invocation and watch the time graphs on the output (with the possibility of analyzing slow queries). Write query types are displayed separately for quick control of data flow.
The package also includes advanced logic for debugging corrupted entities and queries directly through Tracy Bluescreen. Using the debugger turns on automatically and you will never lose any useful information.
π¦ Installation & Basic Usage
This package can be installed using Package Manager which is also part of the Baraja Sandbox. If you are not using it, you will have to install the package manually using this guide.
A model configuration can be found in the common.neon
file inside the root of the package.
To manually install the package call Composer and execute the following command:
In the project's common.neon
you have to define the database credentials. A fully working example of configuration can be found in the common.neon
file inside this package. You can define the configuration simply using baraja.database
extension.
For example:
For now the package supports only the connection to one database.
Possible connection options: url
, pdo
, memory
, driver
, driverClass
, driverOptions
, unix_socket
, host
, port
, dbname
, servicename
, user
, password
, charset
, portability
, fetchCase
, persistent
, types
, typesMapping
, wrapperClass
.
βοΈ Drivers
In default settings Doctrine use MySql
driver.
You can rewrite it for example for Postgres:
In your common.neon
simple type:
πΊοΈ Entity mapping
In order for Doctrine to know which classes are entities and which application logic, it is necessary to set up a mapping.
For mapping, it is necessary to set the introductory part of the namespace entities and the directory where they occur in the project common.neon. A relative path can also be used.
For example:
You can also specify the ignore
key, which disables browsing a specific directory.
Important warning:
The value of the
%rootDir%
,%appDir%
,%wwwDir%
,%vendorDir%
and%tempDir%
parameters may be corrupted when running schema generation in CLI mode. To resolve this mistake, please install Package Manager and call the command as acomposer dump
.
Generate database structure from entities
This package implements a bridge to automatically execute Doctrine commands.
For example you can simply call:
The command o:s:u
means orm:schema-tool:update
.
-f
isflush
to execute changes in SQL,--dump-sql
renders the list of SQL commands that will be executed.
If everything will work fine, the command will create the table core__database_slow_query
which is defined in this package and is ready for logging slow queries.
TIP: If you are using Package Manager, you can simply call the
composer dump
command.
π Performance Benchmarks
When Doctrine is used poorly, it can be unnecessarily slow.
For more details (in Czech language): https://ondrej.mirtes.cz/doctrine-2-neni-pomala
This package uses best-practices to increase the performance. It sets automatically autoGenerateProxyClasses
to false
, ProxyClasses will be generated when needed by Doctrine.
For maximum performance is best to save the generated meta data about your entities using Redis: https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html
UUID
TIP: Read more about UUID binary performance (czech language)
For unique record (entity) identification the package defines the trait UuidIdentifier
or UuidBinaryIdentifier
with already defined all basic best-practice configurations for your entity. The ID will be generated automatically.
For a better experience please insert two traits to all the entities in your project:
UUID will be generated automatically in PHP.
π License
baraja-core/doctrine
is licensed under the MIT license. See the LICENSE file for more details.
All versions of doctrine with dependencies
ext-pdo Version *
baraja-core/nette-symfony-console Version ^1.0
baraja-core/url Version ^1.1
baraja-core/network Version ^1.0
nette/di Version ^3.0
doctrine/orm Version ^2.13
doctrine/annotations Version ^1.13
ramsey/uuid Version ^4.4