# Symfony 3 Giriş Seviyesi Notları

> Kaynak: https://www.tasarimrehberi.net/symfony-3-giris-seviyesi-notlari/
> Yazar: Nurettin Sezer
> Yayın: 2016-12-27 · Güncelleme: 2021-05-08

Bundle Oluştuktan sonra  
enttiy oluştur

 

php bin/console doctrine:generate:entity

 

WebMuhasebeBundle:Fatura

 

Sonrasında ilişki kurulacak.

 

İlişkilerde

 

```

/**
* @ORM\OneToMany(targetEntity="Ilce", mappedBy="Il", cascade={"persist", "remove"})
*/
private $Ilce;
```

 

id göndermek için kullanıyoruz. Kendi id sini karşıya entitye gönderiyor.

 

```

/**
* @ORM\ManyToOne(targetEntity="Il", inversedBy="Ilce")
* @ORM\JoinColumn(name="il_id", referencedColumnName="id")
*/
public $il;
```

 

Buradaki karşıdan gelen id kayıt ediyor. (ilden gelen id yi kayıt ediyor)

 

1 ilin birden fazlası ilçesi olabilir ama bir ilçenin ilçesi olamaz.  
İl burada one kısmı ilçe many olur.  
işlemler bittikten sonra

 

```
php bin/console doctrine:generate:entities WebMuhasebeBundle
```

 

```
php bin/console doctrine:schema:update --force
```

 

sonrasında sayfalandırmak için kullanmak için aşagıdaki kodu yazıyoruz

 

 

```
composer require knplabs/knp-paginator-bundle
```

 

şeklinde kurunuz

 

github linki : https://github.com/KnpLabs/KnpPaginatorBundle

 

Config.yml içerisinde aşagıdaki kodu ekleyiniz:

 

```
knp_paginator:
page_range: 5 # default page range used in pagination control
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
pagination: KnpPaginatorBundle:Pagination:sliding.html.twig # sliding pagination controls template
sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template
```

 

sonrasında user için

 

```
composer require friendsofsymfony/user-bundle "~2.0@dev"
```

 

şeklinde kurulum yapınız.

 

Ekle:

 

```
&amp;amp;lt;?php
// app/AppKernel.php

public function registerBundles()
{
$bundles = array(
// ...
new FOS\UserBundle\FOSUserBundle(),
// ...
);
}
```

 

Kendi bundlunuze seçip user.php oluşturup

 

```

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

public function __construct()
{
parent::__construct();
// your own logic
}
}
```

 

içine ekleyin

 

devamını  
http://symfony.com/doc/current/bundles/FOSUserBundle/index.html

 

adresinden bakabilirsiniz.

 

a) Doctrine ORM User class

 

bölümünde

 

```
// src/AppBundle/Entity/User.php
```

 

kısmında oluşturmuş oldugunuz bundle göre vermeniz gerekmektedir.

 

İşlemleri bitirdikten sonra crud işlemini yapınız.

 

Crud Dökümanı  
http://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_doctrine_crud.html

 

```
php app/console generate:doctrine:crud
```

 

Crud oluşturabilirsiniz.  
Oluşturalacak bütün entityler için tek tek yazmanız gerekiyor.

 

yml yapıyoruz  
isim girerkende Örnek WebMuhasebeBundle:fatura

 

Eğer enitties yeni kuracaksanız kısa yol kullanımı

 

```
php bin/console d:g:entities WebAdiBundle:TabloAdi
```
