Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Databáze - úvod

PDF
Stáhnout kompletní materiál zdarma (2.29 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

'string', 5000);

Model Forum_Board

$this->hasColumn('updated', 'integer', 10)
$this->hasColumn('closed', 'integer', 1);

}

public function setUp(){

$this->hasOne('Forum_Board as Board',

array(

'local' => 'board_id',
'foreign' => 'id'

)

);

$this->hasOne('User',

array(

'local' => 'user_id',
'foreign' => 'id'

)

);

}

}

'string', 5000);

}

public function setUp(){

$this->hasMany('Forum_Thread as 

Threads',

array(

'local' => 'id',
'foreign' => 'board_id'

)

);

}

}

User definován

jinde

Ukázka použítí

$board =

new Forum_Board();

$board->name = 'Some board';

$board->Threads[0]->title = 'new thread 1';
$board->Threads[1]->title = 'new thread 2';

$user =

new User();

$user->username = 'jwage';
$board->Threads[0]->User = $user;
$board->Threads[1]->User = $user;

$board->Threads[1]->User = $user

$board->save();

Práce s modelem

// test.php
$user =

new User();

$user['username'] = 'jwage';
$user['password'] = 'changeme';

$email = $user->Email;
$email = $user->get('Email');
$email = $user['Email'];

Ekvivalentní

Ekvivalentní

$user->save();

Dotazování a další operace

// select pres primarni klic
$user = Doctrine_Core::getTable('User')->find(1);

echo $user->Email['address'];

echo $user->Phonenumbers[0]->phonenumber;

// query
$q = Doctrine_Query::create()

->from('User u')
->leftJoin('u.Email e')
->leftJoin('u.Phonenumbers p')
->where('u.id = ?', 1);

$user = $q->fetchOne();

echo $user->Email['address'];

echo $user->Phonenumbers[0]['phonenumber'];

// test.php

// update
$user->Email['address'] = 'koskenkorva@drinkmore.info';
$user->Phonenumbers[0]['phonenumber'] = '123123';
$user->save();

// smazani
$user->Email->delete();

DB A OBJEKTOVÉ PROG. 
VZORY

Abstrakce

Aplikační logika

DB abstraktní vrstva

MySQL

PosgreSQL

Oracle

Sybase

....

Vzor Factory

•connect($param)
•query($sql)
•]

DBLayer

Implements

Abstraktní vrstva

Implementace X

Implementace Y

•connect($param)
•query($sql)
•]

PGDBLayer

•connect($param)
•query($sql)
•]

MYSQLDBLayer

kuk kosik_objektovy1.5.php

Implementace X

Implementace Y

Vzor Factory

 Používá se tehdy, když chceme získat instanci 

nějakého objektu, ale nechceme se starat o to, jak 
tento objekt vytvořit

 Příklad:

– chceme přistupovat k databázi
– databází je ale mnoho různých druhů (mysql, oracle, ])

Témata, do kterých materiál patří