Symfony 2 – Генериране на Bundle, Entity и CRUD Модул

Здравейте, в тази статия ще ви покажем основните принципи за това как да генерирате “bundle” ( файлова структура ), “entity” ( клас взаимодействащ с определена таблица ) и “CRUD модул” ( създаване, редактиране, изтриване, показване на един запис отделно, списък ) за даден обект в Symfony 2. Symfony 2 e библиотека за програмиране на уеб сайтове, един от плюсовете на тази библиотека, е че може да се генерира код, който да улеснява програмиста в писането на дадения уеб сайт. По този начин да спестите много време и средства.
Генерирането става по зададена спецификация от клиента, не е готова функционалност, която можем да ползваме на всякъде.
Ако сте чели статията Симфони 2 – Инсталиране и конфигуриране вероятно имате инсталирана Symfony 2 библиотеката и можете да започнете работа с нея. Ако не сте я чели и не знаете как да си инсталирате библиотеката ви препоръчвам да започнете с нея. Мисля, че ще ви е полезна. Тази статия е и нещо като продължение на предишната и със следващата ще завършим програмирането на този малък уеб сайт, който ни служи като урок как да работим със Symfony 2.
Да предположим, че искате да създадете модул за управление на продукти. За целта трябва да имате Symfony 2 библиотеката инсталирана и конфигурирана свързана с база данни и с конкретна таблица “Product”. В “Product” таблицата можем да сложим като за начало няколко полета: id, name, description, price. Бихме могли да добавим поле и за снимка, но тази функционалност ще разгледаме на по късен етап в друга статия.
Генериране и конфигуриране на Bundle структура в Симфони 2 уеб сайтове.
Първо трябва да създадем нова bundle структура, където ще се помества кода. Това става като отворите GIT Bash програмата, трябва да отидете в директорията на проекта, който разработвате. Това ще стане с команда:

cd /c/xampp/htdocs/Symfony

Symfony 2 | програмиране
Сега можете да генерирате bundle структурата по следния начин:

php app/console generate:bundle

Symfony 2 | разработване на уеб проекти
След въвеждане на тази команда системата ще ви пита за име на “bundle-a”, къде да се генерира, формат и структура. Този процес предоставя гъвкав избор с много възможности, което е уникално за Симфони 2. Също така има възможност, да зададете всички отговори и “bundle-a” да се генерира без да преминавате през процеса стъпка по стъпка. За целите на тази статия, ще разгледаме целия процес. След въвеждане на горната команда системата ще започне да ви задава въпроси:

Bundle namespace: Mol/StoreBundle

изработка на сайтове

Bundle name: [MolStoreBundle]:

натискаме “ENTER”
изработка на уеб сайтове

Target directory [C:xampphtdocsSymfony/src]:

“ENTER”
Symfony 2 – изработка на уеб сайтове
Това е стандартната директория, просто натискаме “ENTER” от клавиатурата.

Configuration format ( yml, xml, php, or annotation) [annotation]

Symfony 2 - изработка на сайтове
тука Симфони 2 ни предоставя възможност да изберем формата на конфигурационните файлове. Може да избираме между четири формата, за този проект ще ползваме ( yml ) който трябва да въведем от клавиатурата.

Do you want to generate the whole directory structure [no]?

Symfony 2 – уеб програмиране
Тук пишем “yes”, защото искаме да имаме цялата структура.

Do you confirm generation [yes]?

натискаме “ENTER”.
Symfony 2 програмиране

Confirm automatic update of your Kernel [yes]?

“ENTER”.
Symfony 2 generate-bundle

Confirm automatic update of the Routing [yes]?

“ENTER”.
generate-bundle
Ако всичко е наред получаваме съобщението:
„You can now start using the generated code!“
Поздравления! Първата стъпка от създаването на модула във вашия уеб сайт е завършена. В момента ако отворите Symfony/src/Mol/ ще намерите файлова структура StoreBundle, която обаче все още няма entity и няма CRUD модул, с който да можем да управляваме продуктите.
Генериране на клас взаимодействащ с определена таблица в Симфони 2 проекти.
Сега започваме с втора стъпка, генериране на “Entity”.
Първата команда е:

php app/console doctrine:mapping:convert yml ./src/Mol/StoreBundle/Resources/config/doctrine/metadata/orm –-from-database --force

generate-entity
Тази команда създава entities от съществуваща база данни. Следващата команда е:

php app/console doctrine:mapping:import MolStoreBundle annotation

generate-entity
и

php app/console doctrine:generate:entities MolStoreBundle

generate-entity в Symfony 2 уеб проекти
След което имаме папка “Entity” с Product.php файл, който съдържа Product класа взаимодействащ с таблицата “Product” от базата данни.
Генериране и конфигуриране на CRUD модула в Симфони 2 проекти
Трета стъпка е създаването на самия CRUD модул. Командите за създаване на този модул позволяват голяма гъвкавост и предоставят различни възможности. Основната команда е:

php app/console/ generate:doctrine:crud

generate-entity в Symfony 2 уебсайтове
но също така имаме и няколко добавки като
„—entity=…“, “—route-prefix=…”, “—with-write”, “—format=…”
тези полета може да се попълнят по отделно или да се напишат наведнъж:

php app/console generate:doctrine:crud –-entity=MolStoreBundle:Product -–format=annotation –-with-write –-no-interaction

generate-grud в Симфони уеб проекти
След което се очаква да получите съобщението
Generating the CRUD code: OK
Generating the Form code: OK
След това отиваме в src/Mol/StoreBundle/Resources/config/routing.yml и въвеждаме следния рутинг:

MolStoreBundle:
    resource: "@MolStoreBundle/Controller/"
    type: annotation
    prefix: /

След този код всичко трябва да работи нормално!
Поздравления! Сега вече имате готов модул, чрез който да управлявате продуктите и втората част от изработката на уеб сайта, който е учебен, е готова.
http://localhost/Symfony/web/app_dev.php/product/ този линк трябва да работи локално и да ви зареди в уеб сайта ви списък с всички продукти, които имате в таблицата в базата данни. Целият този процес отнема около 5-10 мин. Ако трябва да се пише на ръка ще отнеме около ден-два в най-добрия случай или повече. Това е една от разликите между Симфони 2 и останалите библиотеки. Симфони 2 е изключително добра библиотека поради принципите и идеите заложени в нея и се развива с всяко обновяване на библиотеката. Симфони 2 улеснява процеса на работа, увеличава скоростта, поевтинява уеб сайта и го прави по-достъпен. Симфони 2 се използва предимно за изграждането на уеб сайтове, които са средни или много големи. Изключително гъвкава, бърза и много приятна за работа библиотека, Симофни 2 определено е правилния избор, който ние избираме за програмирането на уеб приложения и го препоръчваме и на вас!

2 thoughts on “Symfony 2 – Генериране на Bundle, Entity и CRUD Модул

  1. I’ve been browsing online more than 4 hours today, yet I never found any interesting article like yours. It is pretty worth enough for me. In my view, if all webmasters and bloggers made good content as you did, the web will be a lot more useful than ever before.

  2. very helpfull, thanx,…. i have a question though,… how or were do u edit the twig template for crud,…..

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *