doctrine
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Předchozí verze | |||
— | doctrine [2023/12/26 19:13] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Doctrine 2 ====== | ||
+ | |||
+ | Knihovna pro objektově relační mapování v PHP. | ||
+ | |||
+ | **Doctrine home page:** http:// | ||
+ | |||
+ | **Demo examples:** http:// | ||
+ | |||
+ | ===== Požadavky ===== | ||
+ | |||
+ | * miminálně PHP 5.3.0 | ||
+ | |||
+ | |||
+ | |||
+ | ===== Instalace pomocí Composeru ===== | ||
+ | |||
+ | Protože mám v konfiguraci PHP (/ | ||
+ | |||
+ | **Stažení** | ||
+ | |||
+ | < | ||
+ | shell# mkdir -p / | ||
+ | shell# cd / | ||
+ | shell# curl -s http:// | ||
+ | </ | ||
+ | |||
+ | **Vytvoření konfiguračního souboru pro Composer** | ||
+ | |||
+ | Pro verzi Doctrine 2.3.4. | ||
+ | |||
+ | <file json composer.json> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **Instalace přes Composer** | ||
+ | |||
+ | < | ||
+ | shell# php -d allow_url_fopen=On composer.phar install | ||
+ | </ | ||
+ | |||
+ | ===== Vrstvy ===== | ||
+ | |||
+ | ==== Common ==== | ||
+ | |||
+ | **Namespace: | ||
+ | **Doc:** http:// | ||
+ | |||
+ | * Class Loading | ||
+ | * Doctrine Annotations | ||
+ | * Doctrine Caching | ||
+ | |||
+ | ==== DBAL (DataBase Abstraction Layer) ==== | ||
+ | |||
+ | Včetně Common. | ||
+ | |||
+ | **Namespace: | ||
+ | **Doc:** http:// | ||
+ | |||
+ | * PDO | ||
+ | * DQL (Doctrine Query Language) | ||
+ | ==== ORM (Object-Relational Mapping) ==== | ||
+ | |||
+ | Včetně Common a DBAL. | ||
+ | |||
+ | **Namespace: | ||
+ | **Doc:** http:// | ||
+ | |||
+ | |||
+ | ===== MySQL DB ===== | ||
+ | |||
+ | Vytvoření MySQL databáze a nastavení oprávnění. | ||
+ | |||
+ | < | ||
+ | shell# mysql -p -u root | ||
+ | mysql> CREATE DATABASE doctrinedemo DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
+ | mysql> GRANT ALL PRIVILEGES ON doctrinedemo.* TO doctrinedemo@localhost IDENTIFIED BY ' | ||
+ | mysql> FLUSH PRIVILEGES; | ||
+ | mysql> QUIT; | ||
+ | </ | ||
+ | |||
+ | ===== Příprava a konfigurace ===== | ||
+ | |||
+ | Přejít do adresáře projektu. | ||
+ | |||
+ | < | ||
+ | shell# mkdir -p lib/ | ||
+ | shell# cp -r / | ||
+ | </ | ||
+ | |||
+ | <file php doctrine-load.php> | ||
+ | <?php | ||
+ | // bootstrap.php | ||
+ | require_once ' | ||
+ | |||
+ | use Doctrine\ORM\Tools\Setup; | ||
+ | use Doctrine\ORM\EntityManager; | ||
+ | |||
+ | $paths = array(' | ||
+ | $isDevMode = false; | ||
+ | |||
+ | // the connection configuration | ||
+ | $dbParams = array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | |||
+ | $config = Setup:: | ||
+ | $entityManager = EntityManager:: | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | ===== Entity ===== | ||
+ | |||
+ | <file php entities/ | ||
+ | <?php | ||
+ | |||
+ | /** | ||
+ | * Description of User | ||
+ | * | ||
+ | * @author blazek | ||
+ | * @Entity @Table(name=" | ||
+ | */ | ||
+ | class User { | ||
+ | |||
+ | /** | ||
+ | * @Id @Column(type=" | ||
+ | * @GeneratedValue | ||
+ | */ | ||
+ | private $id; | ||
+ | |||
+ | /** @Column(type=" | ||
+ | private $firstname; | ||
+ | |||
+ | /** @Column(type=" | ||
+ | private $lastname; | ||
+ | |||
+ | /** @Column(type=" | ||
+ | private $login; | ||
+ | |||
+ | /** @Column(type=" | ||
+ | private $password; | ||
+ | |||
+ | /** @Column(type=" | ||
+ | private $description; | ||
+ | |||
+ | /** | ||
+ | * @Column(type=" | ||
+ | * @GeneratedValue | ||
+ | */ | ||
+ | private $insertDate; | ||
+ | |||
+ | function __construct() { | ||
+ | | ||
+ | } | ||
+ | |||
+ | public function getId() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setId($id) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | public function getFirstname() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setFirstname($firstname) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | public function getLastname() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setLastname($lastname) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | public function getLogin() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setLogin($login) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | public function getPassword() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setPassword($password) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | public function getDescription() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setDescription($description) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | public function getInsertDate() { | ||
+ | return $this-> | ||
+ | } | ||
+ | |||
+ | public function setInsertDate($insertDate) { | ||
+ | $this-> | ||
+ | } | ||
+ | |||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | <file sql create.sql> | ||
+ | -- ----------------------------------------------------- | ||
+ | -- Table `doctrinedemo`.`user` | ||
+ | -- ----------------------------------------------------- | ||
+ | CREATE TABLE IF NOT EXISTS `doctrinedemo`.`user` ( | ||
+ | `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `firstname` VARCHAR(45) NULL, | ||
+ | `lastname` VARCHAR(45) NULL, | ||
+ | `login` VARCHAR(45) NOT NULL, | ||
+ | `password` VARCHAR(64) NOT NULL, | ||
+ | `description` TEXT NULL, | ||
+ | PRIMARY KEY (`id`)) | ||
+ | ENGINE = InnoDB; | ||
+ | </ |