簡體   English   中英

在windows上觀看的PHP文件夾

[英]PHP folder watching on windows

我正在編寫一個簡單的PHP腳本來查看文件夾及其子文件夾以進行任何更改(新文件,修改,刪除),然后執行操作。

我將使用php -f script.php從Windows上的命令行運行此腳本。

我一直在尋找一種方法來觀看具有PHP綁定的Windows上的文件夾。 像inotify或gamin for windows會很不錯。

這個問題的答案提到了FindFirstChangeNotification ,但我找不到任何PHP綁定。

在使用PHP綁定的窗口上是否有用於文件夾/文件系統的庫/軟件?

我最后只是使用在infinit循環中調用的RecursiveDirectoryIterator編寫一個簡單的函數。

我所要做的就是檢查文件或文件夾的上次修改時間並返回true或false。

這不是一個非常精確的方法,但它很好地滿足了我的目的。 腳本坐在后面,使用大約12MB的內存。

您可以使用inotify_add_watch PHP函數來獲取指定目錄中的任何更改(新文件,修改,刪除)的通知。 它的工作方式與Windows上的FileSystemWatcher相同。

如果您在服務器上安裝了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或任何其他擴展文件並對文件的名稱運行RegEx,如果有像/Project/Tests/ClassNameTest.php這樣的匹配,它將運行測試,否則只需按下終止。 為方便起見,可以設置為在發生錯誤時將電子郵件發送到預定義的列表電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM