2016-04-01 35 views
2

Bir denetleyiciden parameters.yaml'ye bir tamsayı değeri yazmak istiyorum. Bu mümkün mü?Symfony, denetleyiciden parametre.yaml'ye yazılır.

Örnek:

parameters.yaml

parameters: 
    # ... 
    counter: 13 

SomeController.php

class SomeController 
{ 
    public function indexAction() 
    { 
     $counter = $this->getParameter('counter'); 
     $counter++; 
     // now save new counter value to parameters.yaml !?? 
    } 
} 

cevap

2

Parametreler genellikle sabit değerlerdir. Yani Daha iyi bir yaklaşım muhtemelen bireysel yaml dosyasına yazıyor: Eğer uygulamada ihtiyacınız olan her yerde

http://symfony.com/doc/current/components/yaml/introduction.html

use Symfony\Component\Yaml\Dumper; 


const MY_PARAM=13; 

//manipulate and do your thing.... 
$array=['my_param'=>self::MY_PARAM++]; 



$dumper = new Dumper(); 

$yaml = $dumper->dump($array); 

file_put_contents('/path/to/file.yml', $yaml); 

Sonra dosyayı okudum.

use Symfony\Component\Yaml\Parser; 

$yaml = new Parser(); 

$value = $yaml->parse(file_get_contents('/path/to/file.yml')); 
1

Parameters.yml sadece yapılandırma değerlerini sabit içeren gerekir! Sayacınızı veritabanında saklamanız veya (bunu beğenmedim) txt dosyasında saklamalısınız.

Ama gerçekten düzenlemek isterseniz. Dosyayı ayrıştırmak ve çizgiyi aramak/değiştirmek zorundasınız ... Bu gerçekten kötü bir uygulama!

+0

Ancak bu sadece tek bir değer mi ?! Bunun için bir veritabanı tablosu oluşturmak benim için çok anlamlı değil. Sanırım bir txt dosyasına koyacağım. – nipec