Symfony Simple Sitemap

<?php

namespace Brkhn\WebBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request;

class SiteMapController extends Controller
{
    /**
     * @Route("/sitemap.{_format}", name="sitemaps_sitemap", Requirements={"_format" = "xml"})
     * @Template("BrkhnWebBundle:SiteMap:index.xml.twig")
     */
    public function indexAction()
    {
        $urls = array();
        $hostname = $this->getRequest()->getHost();

        $urls[] = array('loc' => trim($this->get('router')->generate('home_page'),'/'), 'changefreq' => 'weekly', 'priority' => '1.0');

        $questions = $this->getDoctrine()->getRepository('QuestionWebBundle:Posts');
        foreach($questions->findBy(array('typeId'=>1)) as $post ){
            $urls[] = array('loc' => $this->get('router')->generate('posts_view',
                    array('id' => $post->getId())), 'priority' => '0.5');
        }

        $users = $this->getDoctrine()->getRepository('UserUserBundle:User');
        foreach($users->findAll() as $user ){
            $urls[] = array('loc' => $this->get('router')->generate('user_profile',
                    array('id' => $user->getId())), 'priority' => '0.5');
        }
        return array('urls' => $urls, 'hostname' => $hostname);

    }

}
 
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    {% for url in urls %}
        <url>{# check if hostname is not alreay in url#}
            <loc>http://{%if url.loc|replace({hostname:''}) == url.loc%}{{hostname}}{{url.loc}}{%else%}{{url.loc}}{%endif%}</loc>
            {% if url.lastmod is defined %}
                <lastmod>{{url.lastmod}}</lastmod>
            {% endif %}
            {% if url.changefreq is defined %}
                <changefreq>{{url.changefreq}}</changefreq>
            {% endif %}
            {% if url.priority is defined %}
                <priority>{{url.priority}}</priority>
            {% endif %}
        </url>
    {% endfor %}
</urlset>

Çok fazla yazıya gerek olmasa gerek 🙂 kodlar konuşsun basitce bir sitemap xml oluşturmanıza yardımcı olur umarım.

Apache ile NTFS üzerinde php dosyası çalıştırmak

Başlık biraz uzun olmuş olabilir. Ama gayet açık bir başlık oldu ben ubuntu 13.04 kullanıyorum NTFS tarafında www (root) klasörlerimi tutuyorum fakat tüm ayarlamaları yapmama ragmen karşıma böyle bir hata sayfası çıkıyor.
Ekran görüntüsü 2013-07-12 04:06:11

Adım adım yaptığım işlemleri anlatayım

Öncelikle Ubuntu’nun sabit disklerimize vermiş olduğu isimden kurtulalım. Buradaki işlemleri yaptığınızı varsayıyorum.

daha sonra https://apps.ubuntu.com/cat/applications/ntfs-config/ adresinden ntfs-config tool unu yüklüyoruz.

sudo ntfs-config

komutundan sonra açılan pencerede ne görür isek işaretleyip kapatıyoruz.

Ekran görüntüsü 2013-07-14 06:09:01

işlem tamamdır. Ben win de d olarak adlandırdığımız sürücüyü burada YeniBirim olarak adlandırdım.

/etc/apache2/sites-available/

altında bulunan default dosyasını açıp içerigini aşagıdaki gibi degiştirdigimiz zaman herşey çalışıyor olması lazım.

<VirtualHost *:80>
 ServerAdmin [email protected]

DocumentRoot /media/YeniBirim/www/php/public_html
 #/var/www
 <Directory />
 Options FollowSymLinks
 AllowOverride None
 </Directory>
 <Directory /media/YeniBirim/www/php/public_html/>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride None
 Order allow,deny
 allow from all
 </Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
 AllowOverride None
 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 Order allow,deny
 Allow from all
 </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Composer Language Problem

Benim sistemin Ubuntu 13.04 php 5.4.9 (Türkçe)

Eğer composer ile bir paket indirmeye yahut güncellemeye çalıştığınızda

PHP Fatal error: Couldn't find implementation for method Composer\DependencyResolver\RuleSet::getiterator in Unknown on line 0

Fatal error: Couldn't find implementation for method Composer\DependencyResolver\RuleSet::getiterator in Unknown on line 0

Gibi bir hata alıyor iseniz. Aynı hatayı dili İngilizce yaptığınız almıyor ve sorunsuz bir biçimde yüklüyor ise ;

#komut satırından bu komutu vermeniz sorununuzun düzelmesine yardımcı olacaktır
export LANG=C