İçeriğe atla

Symfony Açılış Sayfasını değiştirme

Bu yazıyı symfony ve twig kullanarak template sistemi yapmış olduğunuzu varsayarak yazıyorum.
Yapmanız gereken:
Kurmuş olduğunuz bundle içersine girip Resources –> views->Default>index.html.twig

dosyasını değiştirmeniz.
Benim yaptıgım:

{% extends 'base.html.twig' %}
{% block title %}
    Site Yönetim Paneli
{% endblock %}
{% block menu %}
Site Yönetim Paneli
{% endblock %}
{% block body %}
    Site Yönetim Paneli
{% endblock %}

Symfony İlişkili Hücreyi Gösterme

İlişkilendirdiginiz hücreti listelerken crud göstermez bu durumda yapmanız gerekenler:

İlişkili url göstermek isterseniz

Kontroller dosyasına
'url' =>$user->getSite()->getUrl(),

Twig dosyasına:
{
property: 'url',
label: 'Site',
sortable: true
},

koymanız yeterlidir.

Symfony Çok kullanılan kodlar

Symfony de en çok kullanılan komutlar:

php bin/console generate:bundle
php bin/console doctrine:generate:entity
php bin/console doctrine:generate:entities WebSiteBundle
php bin/console doctrine:schema:update --force

php bin/console generate:doctrine:crud

Seo Araçları

Eğer profosyonel olarak seo çalışmalarını yapacaksanız 2 adet program almanızı tavsiye ederim. Biraz tuzludur ama sürekli bu işi yapıyorsanız değer.

http://www.senuke.com

http://www.scrapebox.com

Scrapebox ile Bloglara yorum atmak için kullanabilirsiniz.

Symfony 3 Giriş Seviyesi Notları

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:

<?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