Escutando pastas e arquivos (mudanças)

É possível ouvir mudanças de pastas e arquivos (por events) em PHP ou Node diretamente, ou eu preciso fazer meu próprio método para fazê-lo?

Exemplo : preciso escutar a pasta /user . Se eu adicionar algum arquivo a este diretório, o PHP ou o Nó receberão as informações e executará PathEvent::fileAdded("/user/user.profile") por exemplo. Se eu renomear uma pasta, execute PathEvent::pathRenamed("/user/save1", "/user/save2") .

Eu sei que o PHP não possui um sistema de events como Node. Mas, para o PHP, eu posso, por exemplo, executar um método (que eu não conheço atualmente) que tenham ocorrido as mudanças desde a última vez que verificou.

Bem … Eu só preciso de uma maneira de começar a procurar, não sei exatamente qual é o termo dessa pesquisa. Se você pode me mostrar um exemplo, também será ótimo! : P

O Node.js fornece essa funcionalidade. Você pode ler isso aqui .

Exemplo simples:

 var fs = require('fs'); fs.watch('somedir', function (event, filename) { console.log(event); console.log(filename); }); 

Nota:

Ao assistir a um diretório, o argumento do nome do arquivo no retorno de chamada não é suportado em todas as plataformas (atualmente só é suportado no Linux e no Windows). Mesmo nas plataformas suportadas, o nome do arquivo nem sempre é garantido. Portanto, não assuma que o argumento do nome do arquivo sempre seja fornecido no retorno de chamada e tenha alguma lógica de retorno se for nula.

Se você tiver access à forma como os arquivos serão acessados ​​/ alterados / adicionados etc. Eu criaria algumas tabelas em DB. Um para tipos de mudança e um para mudança e seu carimbo de horário.

Quando alguém faz algo em um arquivo, mude o nome. Vai através do seu invólucro que também adiciona uma inserção para db com timestamp atual. Quando seu script PHP é executado, você pode puxar todas as mudanças desde o último. assim

select * from Log where ModifiedOn > $lastRun .

É assim que estou rastreando as alterações nas tabelas do database. Espero que isso ajude.