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; | ||
| + | </ | ||
