2010-12-20 2 views
1

값이있는 YAML 키를 만들고 싶습니다 - php의 코드. 하지만이 코드는 실행해서는 안됩니다. 값으로 사용하고 싶습니다. 어떻게해야합니까?symfony YAML에서 문자열 값으로 PHP 코드 사용

예 :

somekey: <?php echo 1; ?> 

이 줄은 구문 분석 후 somekey: 1로 인식되어서는 안된다 - 나는 <?php echo 1; ?>somekey 키 값을 수신 할.

업데이트 : 나는 (fixtures.yml으로) 데이터베이스에 몇 가지 코드를 저장하기 위해 이것을 사용하고로드와 PHP 기반의 템플릿으로 사용할

.

+1

긴 샷 ... somekey :? '?> – Tom

답변

2

나는 내 자신의 솔루션을 발명했다. 그것은 심하게 보이지만 작동합니다

somekey: "<?php echo '<?php echo 1; ?>'; ?>" 
0

PHP 코드를 실제로 실행할시기를 지정하지 않은 경우. 그래서 당신이 그것을 실행하고 싶지는 않을 것으로 가정하면, (실제 값이 무엇이든 탈출 또는 HTML) &lt;?php echo 1; ?&gt;을 시도

1

당신은 그것을 저장할 수 어딘가에 브라우저에 값을 출력하고 있습니다 :

somekey: [?php echo 1; ?] 

템플리트 (yaml을로드하는 레이어가 작업을 수행 할 수있는 레이어)를 사용해야하기 바로 전에 [? php?]를 적절한 PHP 태그로 바꾸십시오.

1

저는 마이그레이션 목적을 위해 조명기를 사용하고 있으며 적절한 yaml 파일을 생성하기 위해 php를 사용해야했습니다. 그래서 심포니이 잘 작동하고 1.2

<?php $handle=fopen(sfConfig::get('sf_data_dir')."/fixtures/csv/file.csv","r")?> 
<?php fgetcsv($handle,0, ";"); ?> 
<?php $i=100; ?> 
<?php while (($data = fgetcsv($handle,0, ";")) !== false):?> 
<?php 
$code=trim($data[0]); 
$user=trim($data[1]); 
$criteria = new Criteria(); 
$criteria->add(ObjectPeer::CODE, $code); 
$unit= objectPeer::doSelectOne($criteria, $error); 
if (is_null($unit) || empty($unit)) 
    continue; 
?> 
    auto_generated_label_<?php echo 'value'.$i; $i++?>: 

    attribute_1: <?php echo $user ?> 

    attribute_2: <?php echo $unit->getId() ?> 

<?php endwhile ?> 

, 그리고 PHP를 다룰 때 항상 예처럼 각 YAML 엔티티 사이처럼 비워 둘, 존중 들여 쓰기, 기억 :이 문제를 해결 내 작품은 뭔가를하고 있었다

auto_generated_label_1 : 다음 YAML 구문 분석이 그것을 읽을 때 당신이 그들을 넣어하지 않는 경우, 당신은 somethink 등으로 끝낼 수 있도록 그 빈 줄이있을 수 없기 때문에하는 YAML 파일을 embebbed attribute_1 : asdasdasd의 attribute_2 : 1,233,123

행운을 빈다.

0

심포니 1.0 :

version: <?php echo file_get_contents('1.0/VERSION')."\n" ?> 

심포니 1.x의 :

version: "<?php echo file_get_contents('1.1/VERSION') ?>" 
관련 문제