Phing array özelliği

2 Cevap php

Ben kullanarak belirli dosyaların iznini denetleyen bir Phing yapı dosyası var görev.

<target description="list of files to check permission" name="files-to-test">
    <property name="filesToCheck" value=""/>
    <php expression="file_get_contents('filesToCheck.txt')" returnProperty="filesToCheck"/>
    <foreach list="${filesToCheck}" param="file" target="permission-test"/>
</target>

<target description="Test the permission of files that needs to be written" name="permission-test">
    <touch file="${file}"/>
</target>

Farklı dosya konumları sadece bir listesi olan bir extenal dosyası (filesToCheck.txt) çağırır. Bu çalışıyor. Ama ben aynı dış dosyaya (filesToCheck.txt) belli bir anahtara göre belirli bir dosyaya erişmek istediğinizde benim PHP kodu aynı listeyi yeniden önlüyor.

Ben Phing belgelerine baktım ama herhangi bir dizi Görev bulamadık. Herkes etrafında bir iş biliyor mu veya yeni bir görev Phing bir dizi özellik taşıma için tek çözüm yaratıyor?

2 Cevap

Ben dokunmatik görev dosya izinleri için denetleme en etkili yolu değildi çünkü bir ad-hoc görev oluşturarak sona erdi. Beklendiği gibi kullanıcı dosyanın sahibi değilse PHP'nin touch dosyaları için çalışmaz.

Bu Ben ile geldi ad-hoc bir iştir:

           <adhoc-task name="is-file-writeable">
			<![CDATA[

			class IsFileWriteableTest extends Task 
			{
				private $file;

						   function setFile($file) 
				{
					$filesArray = parse_ini_file('filesToCheck.ini');
					$this->files = $filesArray;
				}

				function main() 
				{
					foreach ($this->files as $fileName => $fileLocation)	
					{
						if (!is_writable($fileLocation)) 
						{    
							throw new Exception("No write permission for $fileLocation");
						}
					}
				}
			}
			]]>
			</adhoc-task>

			<target description="list of files to check permission" name="files-to-test">
			<is-file-writeable file="/path/to/filesToCheck.ini" />
			</target>

Muhtemelen sadece bu konuda biraz daha sağlam olması için kirli bir hızlı-n-çözüm, veya kendi görevi olarak bir ad-hoc görev oluşturabilirsiniz. Kendimi ve hiçbir şey kendiniz yazmanın bir alternatif olarak bana dışarı atlar uzunca bir süre boyunca Phing kullandım.