Konrad Kluźniak

Konrad Kluźniak Webdeveloper /
Designer

Temat: cake3

Cześć,
Chciałem zapytać, czy macie jakieś dziwne przeczucie, że ten nowy cake trochę się "zamotał"?

czytam dokumentację, i już w samym ORM jest trochę przekombinowane, w cake2 wszytko było na tacy i jak trzeba.

W Trójce nazewnictwo już kombinowane ( jak model nie ma asocjacji, dajemy w singular, jak ma - plural ), oczywiście to już nie jest stary dobry model, tylko obiekt, tu znów - albo tabela albo rekord - entity.

Jestem zmartwiony już samym wstępem:

To get started you don’t have to write any code

use Cake\ORM\TableRegistry;
$articles = TableRegistry::get('Articles');
$query = $articles->find();
foreach ($query as $row) {
echo $row->title;
}


Czy to kod dla kontrolera, który może sobie załądowac dane, jak na przykład $this->loadModel() ?

If we wanted to customize our ArticlesTable class adding some associations or defining some additional methods we would add the following to src/Model/Table/ArticlesTable.php after the <?php opening tag:

namespace App\Model\Table;
use Cake\ORM\Table;
class ArticlesTable extends Table {
}


To pewnie kod do stworzenia obiektu tabeli ( coś jak stary dobry Model )

A poniżej mieszanka:

Table classes use the CamelCased version of the table name with the Table suffix as the class name. Once your class has been created you get a reference to it using the ORM\TableRegistry as before:


use Cake\ORM\TableRegistry;
// Now $articles is an instance of our ArticlesTable class.
$articles = TableRegistry::get('Articles');


Co jest grane ? Gdzie, gdzie to użyć ?

Dalej:
Entities use the singular CamelCase version of the table name as their class name by default.

Uwaga:
If you need to customize which entity a table uses you can use the entityClass() method to set a specific classname.

CO ? Mam metody do szukania co jest czyje, gdzie i kiedy ? Przecież w 2.0 jeden model robił swoje.
Cake dev team chwali się nową validacją, bo twierdzą że stara była zamotana, aż się boję nowej :)

Pozdrawiam.

PS: Czy podoba Wam się nowy Cake ?Ten post został edytowany przez Autora dnia 27.12.14 o godzinie 23:54
Kamil Kosiński

Kamil Kosiński CTO w
DobryMechanik.pl

Temat: cake3

http://book.cakephp.org/3.0/en/orm/retrieving-data-and... ten rozdział chyba trochę wyjaśnia.

Cake w końcu stał się bardziej obiektowy, co wiąże się z większym skomplikowaniem na pierwszy rzut oka.
Przesiadka z 2 na 3 może się na początku być ciężka.

$articles = TableRegistry::get('Articles');
$query = $articles->find('all', 'where' => ['Articles.published' => true]);

czy
$articles = TableRegistry::get('Articles');
$query = $articles->find('all')->where(['Articles.published' => true])->all();

wg. dokumentacji. Chociaż bez sensu wydaje mi się konieczność wywoływania all().

to dawne
$this->Article->find('all', array('conditions' => array('Article.published' => true)));

dodaj first() czyli:
$articles = TableRegistry::get('Articles');
$query = $articles->find('all', 'where' => ['Articles.published' => true])->first();

i masz dawne:
$this->Article->find('first', array('conditions' => array('Article.published' => true)));

W skrócie (bo tematów jest bardzo dużo w nowym cake) Table to tabela ;) na niej robisz find, save, delete. Entity to rekord.

Rekord możesz tworzyć na bazie requestu (za dokumentacją):
$articles = TableRegistry::get('Articles');
$entity = $articles->newEntity($this->request->data());

albo "ręcznie":
$article = new Article(['title' => 'First post']);

Jeśli nie masz żadnych relacji, nie potrzebujesz nic w modelach określać, to tak jak poprzednio, nawet nie musisz tworzyć klas z konkretnymi modelami.

Czy mi się podoba?
Nie wszystko. Na razie tylko pobieżnie przeglądałem dokumentację, bo ostatnio piszę głównie w laravelu.
Za to bardzo się cieszę, że w końcu się udało i niedługo będzie stabilne 3. Pod względem obiektowości, czy wykorzystania "nowinek" w php cake był daleko w tyle za innymi fw. W końcu się to zmieni. Może w końcu będzie też działał szybciej. Może łatwiej będzie pisać testy (testowanie kodu opartego na tablicach jest mniej wygodne od testowania metod). Ja się cieszę, a jak każdy fw ma plusy i minusy :)



Wyślij zaproszenie do