markonix
7.08.2012, 10:55:48
W starej aplikacji (zero OOP) mam setki plików pochodzących jeszcze z czasów nauki PHP stąd folder jest pełen plików PHP ze skryptami, testami, wersjami innych plików. Zastanawiam się czy jest jakiś sposób aby otrzymać listę plików nie otwartych przez ostatnie X lat. Oczywiście przez otwarcie rozumiem wszelki kontakt z plikiem w tym include/require i zewnętrzne odwołania.
Plików jest kilkaset, niektóre wydają się niepotrzebne ale gdzieś tam są np. includowane i może się coś sypnąć, co nie zauważy człowiek od razu.
Fajnie by też było aby sposób działał w przypadku plików css, js i innych bo też też w jednym folderze leżą i mi wstyd za ten bałagan.
alegorn
7.08.2012, 11:45:04
nic o takowym narzędziu nie wiem - gdyby było to ja chętnie bym usłyszał.
zmien nazwe/przeniesz te najbardziej podejrzane - jak nie zauważysz braku w miesiąc czy dwa, to znaczy że nie potrzebne

j.
fileatime?
Ogólnie, to puść jakiś tracing (
debug_backtrace, ale proponuję xdebug) i tam masz listę dołączanych oraz wykorzystywanych plików.
redeemer
7.08.2012, 12:45:24
A co do css, js i obrazków to napisałem kiedyś prosty skrypt który przetwarzał access logi serwera apache i porównywał nazwy requestowanych plików z ścieżkami plików na dysku twardym. Serwis miał dużo wyświetleń (access log z jednego dnia zajmował ponad 1 GB) co ograniczyło w dużym stopniu margines błędu.
markonix
7.08.2012, 15:40:24
Cytat(erix @ 7.08.2012, 12:50:51 )

fileatime?
Ogólnie, to puść jakiś tracing (
debug_backtrace, ale proponuję xdebug) i tam masz listę dołączanych oraz wykorzystywanych plików.
fileatime - myślałem, że wystarczy i faktycznie u mnie działa całkiem dobrze niestety najpóźniejsza data to dzisiejsza o 5 rano.
Nie jestem pewien ale data ta jest modyfikowana w momencie backupu.
Funkcja pomocna w obrębie jednego dnia - zawsze coś.
foreach($files as $filename) {
$i++;
}
rzymek01
7.08.2012, 17:30:29
albo dla każdego pliku przeleć grepem w poszukiwaniu jego wystapień w innych plikach, jeśli nie znajdzie, to mozna wnioskować, że taki plik nie jest wykorzystywany
markonix
7.08.2012, 22:23:24
No ale takie coś nie przejdzie u mnie bo to, że ten plik jest gdzieś includowany to nie znaczy, że koniecznie wykorzystywany, może być kilka plików wzajemnie się wykorzystujących ale ich cała paczka zaśmieca mi FTP.
Cytat
że ten plik jest gdzieś includowany to nie znaczy, że koniecznie wykorzystywany
No to podejrzewam, że czeka Cię napisanie takiego narzędzia od zera.
Ew. coś do unit-testów, co pozwala na analizę pokrycia kodu (code coverage; wykorzystanie poszczególnych plików/partii kodu per wykonanie skryptu).
markonix
8.08.2012, 10:25:32
Gdyby nie backupy to fileatime by wystarczył.
Myślałem, że jeszcze jest jakaś opcja w apachu, logi czy coś.
Pomyśl logicznie - Apache, to tylko "pomost" pomiędzy użytkownikiem a interpreterem.
Jeśli napiszesz odpowiedni skrypt w bashu, który ściąga SMS z komórki podłączonej do komputera, to zostaną one odczytane. Jak Apache ma wiedzieć, czy używasz starej Nokii, czy Alcatela?
Pozostaje wyłącznie analiza tego, co robi PHP, bo to jest niezależne od użytego demona. Skorzystaj z podpowiedzi, które dostałeś w moim poprzednim poście.
alegorn
8.08.2012, 10:48:45
tak naprawde nadpisz sobie funkcje includudowania pliku + loger jaki plik używasz.
Ale takim rozwiązaniem musisz:
- praktycznie przepisać cały skrypt
- możesz zapomnieć o sprawdzaniu tego, czy coś z załączanego pliku jest w ogóle wykorzystywane
markonix
8.08.2012, 10:52:59
Cytat(erix @ 8.08.2012, 11:42:32 )

Pomyśl logicznie - Apache, to tylko "pomost" pomiędzy użytkownikiem a interpreterem.
Przez Apache rozumiem generalnie oprogramowanie serwerowe, a tutaj mam coś takiego jak:
- logi apache gdzie dostanę odwołania do plików, które nie istnieją
- webanalizer gdzie mam informacje, które pliki są wywoływane najczęściej
- i pewnie inne, o których nawet nie wiem.
W kontekście skryptów php te informacje są mało wartościowe...
markonix
8.08.2012, 11:11:26
Skoro w logach mam informacje, których plików nie ma, a są wywoływane to wystarczyła by informacja odwrotna - wartościowe.
Skoro mam informacje które pliki są wywoływane najczęściej, to wystarczyłby mi pełen log wywołań plików - wartościowe.
I nie piszemy o skryptach tylko plikach.
Sry, Winnetou, ale teraz sam sobie przeczysz:
Cytat
że ten plik jest gdzieś includowany to nie znaczy, że koniecznie wykorzystywany
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.