在Windows上观看PHP文件夹
问题描述:
我正在写一个简单的PHP脚本来观察文件夹及其子文件夹的任何更改(新文件,修改,删除),然后执行操作。在Windows上观看PHP文件夹
我将使用php -f script.php
从windows的命令行运行此脚本。
我一直在寻找一种方法来观察具有PHP绑定的窗口上的文件夹。一些像inotify或gamin窗户将是很好的。
this question的答案提到FindFirstChangeNotification
,但我找不到任何PHP绑定。
是否有任何图书馆/软件文件夹/文件系统监视窗口与PHP绑定?
答
我最终只是写了一个简单函数,使用在infinit循环中调用的RecursiveDirectoryIterator
。
我所要做的就是检查文件或文件夹的最后修改时间,并返回true或false。
这不是一个非常确切的方法,但它很好地服务于我的目的。坐在后台,脚本使用大约12MB的内存。
答
如果您在服务器上安装Ruby中,你可以使用watchr gem
它能做什么是很简单的,在火/目录更改执行由您定义的脚本,这是你想要做什么。
下面是一个例子文件autotest.rb
:
#!/usr/bin/ruby
# Match all PHP files in your project directory
watch("<PROJECT_DIR_PATH>/(.*).<FILE_EXTENSION_PHP>") do |match|
run_test %{<PROJECT_DIR_PATH>/Tests/#{match[1]}Test.php}
end
# Match all files in your Tests directory
watch("<PROJECT_DIR_PATH>/Tests/.*Test.php") do |match|
run_test match[0]
end
# Run test if there are matches
def run_test(file)
unless File.exist?(file)
puts "#{file} does not exist"
return
end
puts "Running #{file}"
result = `phpunit #{file}`
puts result
end
所以这港岛线匹配所有PHP或任何其他扩展名的文件和对文件的名称来运行正则表达式,如果有匹配像/项目/测试/ ClassNameTest.php它将运行测试,否则只是按摩结束。为了方便起见,这可以设置为将错误发送到预定义列表电子邮件。