Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ile lini kodu ma moj projekt ?
Forum PHP.pl > Inne > Hydepark
invx
ile lini kodu ma moj projekt questionmark.gif wlasnie sobie takie pytanie postawilem, i szukam programiku, zebym mogl sobie na nie odpowiedziec biggrin.gif

P.S.
to dosc zlozony projekt, kilka zagniezdzonych folderow, na roznych poziomach.
dr_bonzo
RecursiveDirectoryIterator + RecursiveIteratorIterator (ew. szukaj skryptu do wyswietlania zawartosci katalogu) + count( file() ) na kazdym pliku (bo nie sa chyba wielkie?) i masz juz ilosc linii.
FiDO
Jak masz dostep do maszyny unixowej to:
Kod
find.exe . -type f -name "*.php" -exec wc -l {};

lub

find . -type d -exec wc -l {}\*.php; 2>/dev/null
# tak troche latwiej zsumowac wszystko do kupy

w katalogu glownym projektu, jak masz to na windowsie to sciagnij Unxutils i potem dokladnie to samo polecenie co wyzej
invx
mam win XP, sciagnolem to cos, ale co z tym dalej questionmark.gif umiscilem plik find.exe w katalogu gl. projektu i tez nic
crash
No find.exe i wc.exe (nie mylić z kiblem tongue.gif) Ci potrzebny jeszcze do tego.
invx
Cytat
C:\usr\krasnal\www\RCX_portal>find.exe . -type f -name "*.php" -exec wc -l {};
find.exe: missing argument to `-exec'

C:\usr\krasnal\www\RCX_portal>find.exe . -type d -exec wc -l {}\*.php; 2>/dev/nu
ll
System nie może odnaleźć określonej ścieżki.

C:\usr\krasnal\www\RCX_portal>find . -type d -exec wc -l {}\*.php; 2>/dev/null
System nie może odnaleźć określonej ścieżki.

C:\usr\krasnal\www\RCX_portal>
FiDO
Kod
find . -type f -name "*.php" | xargs wc -l

To jest jednak lepsza wersja niz poprzednie..

Co do bledow.. druga wersje podalem dla unixa.. w windowsie nie ma /dev/null tylko samo null.
Drugi blad.. przed srednikiem na koncu pierwszej komendy MUSI byc spacja, musialo mi sie omylkowo usunac podczas wklejania..
Marusz
Chwilka z google i prosze. Napisane w php i dziala:
http://www.phpbuilder.com/board/history/to...10298924-1.html

Polecam zmienic na samym dole wartosc zmiennej $directory z ($_GET['dir'] != NULL) ? $_GET['dir'] : "."; na "nazwa_katalogu" i uruchomic.
invx
Cytat
C:\usr\krasnal\www\RCX_portal>find . -type f -name "*.php" | xargs wc -l
Nazwa 'xargs' nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne,
program wykonywalny lub plik wsadowy.


C:\usr\krasnal\www\RCX_portal>
crash
biggrin.gif No co? Problemy z czytaniem?
invx
Cytat
Katalog "RCX_portal" zawiera 1623 linie kodu źródłowego.


biggrin.gif biggrin.gif biggrin.gif
dzieki za skrypt

P.S.
czy 1623 to duzo czy malo jak na CMS w trakcie kodowania questionmark.gif
hwao
Cytat(invx @ 2005-06-26 21:13:56)
czy 1623 to duzo czy malo jak na CMS w trakcie kodowania questionmark.gif

IHMO mało, zalezy w ogol coto jest:P jak mnie to 400 mam w jednym pliku snitch.gif a plikow jest "troche snitch.gif"

Byla juz kiedys takak dyskusja i wg mnie nie powinna byc kontyn. - tylko odtyczyla ilosci kodu w kb a nie linijkach.

Btw: umnie narazie 4120 lini.
matid
U mnie jeszcze przed wydaniem wersji 0.01-dev jest 18400 linii (liczba ta zawiera także biblioteki zewnętrzne).
bela
Tak z nudów sobie napisałem ;]
  1. <?php
  2. function dump($a) {
  3. print '<pre>';
  4. print_r($a);
  5. print '</pre>';
  6. }
  7. $files = array();
  8.  
  9. function iterateDir($path) {
  10. $di = new DirectoryIterator($path);
  11. global $files;
  12. foreach ($di as $k => $v) {
  13. // get extension
  14. $ext = end(explode('.', $v->getPathname()));
  15. // is svn dir
  16. $name = $v->getFilename();
  17. $first = substr($name, 0, 1);
  18. $first == '.' ? $dupa = false : $dupa = true;
  19.  
  20. // if is dir and not svn dir, iterate this dir;]
  21. if($v->isDir() && $dupa) {
  22. iterateDir($v->getPath() . '/' . $v->getFilename());
  23. }
  24. // print filename with path, with php extenstion
  25. if($dupa && $v->isFile() && $ext == 'php') {
  26. $files[] = $v->getPathname();
  27. //print $v->getPathname() . \"<br />n\";
  28.  
  29. }
  30. }
  31. return $files;
  32. }
  33. $files = iterateDir('./nOdin/in repos/');
  34.  
  35. $globalLines = 0;
  36. $highest = array('count' => 0, 'file' => '');
  37. $shortest = array('count' => 213213123132, 'file' => '');
  38.  
  39. foreach($files as $file) {
  40. $countLines = count(file($file));
  41.  
  42. if($highest['count'] <= $countLines) {
  43. $highest = array('count' => $countLines, 'file' => $file);
  44. }
  45.  
  46. if($shortest['count'] >= $countLines) {
  47. $shortest = array('count' => $countLines, 'file' => $file);
  48. }
  49.  
  50. $globalLines += $countLines;
  51. }
  52. print 'Liczba linii: ' . $globalLines . '<br />';
  53. print 'Najdłuższy plik: ' . $highest['file'] . ', linii: ' . $highest['count'] . '<br />';
  54. print 'Najkrótszy plik: ' . $shortest['file'] . ', linii: ' . $shortest['count'] . '<br />';
  55.  
  56. ?>


Wynik:
Cytat
Liczba linii: 27174
Najdłuższy plik: ./nOdin/in repos/net/php/smarty/Smarty_Compiler.class.php, linii: 2258
Najkrótszy plik: ./nOdin/in repos/config.php, linii: 1


;]

Poza tym staram się tworzyć małe klasy ale jest ich dość sporo. Np. podczas odpalenia aplikacji bez jakis szczególnych czynności ( np. logowanie etc ) ładuje się ok 25 klas ;]
itsme
Cytat
Liczba linii: 50647
Najd�u�szy plik: E:/www/www/m/trunc/lib/zip/pclzip.lib.php, linii: 5207
Najkr�tszy plik: E:/www/www/m/trunc/inc/db/drivers/postgres.class.php, linii: 0

przy czym z zewnetrznych lib-ów mamy ZIP oraz fpdf :-)
nie ma smarty ADO ani innych spowalniaczy ;-)
@bela_666: dzięki za kodzik :-)
Nievinny
Kod
Liczba linii: 48032
Najdłuższy plik: E:\Server\docs\work\Framework/Vulture/Librarys/Template/Smarty/Smarty_Compiler.class.php, linii: 2304
Najkrótszy plik: E:\Server\docs\work\Framework/TestApplication/Cache/CompileTheme/TestTheme/%%11^11B^11B508E4%%footer.tpl.php, linii: 8

Licząc pliki cache, Propela, Creole i Smarty... A dodam, ze powoli kończę, więc to dla mnie i tak sporo... ale bez tych dopalaczy to:
Kod
Liczba linii: 5825
Najdłuższy plik: E:\Server\docs\work\Framework/Vulture/Controller.class.php, linii: 308
Najkrótszy plik: E:\Server\docs\work\Framework/TestApplication/Cache/CompileTheme/TestTheme/%%11^11B^11B508E4%%footer.tpl.php, linii: 8

Tyle linii napisanych przezemnie, bez Propela/Creole i Smarty, oraz klas phinga (do komunikacji z db), ale i tak z tym jest ok.
hamlecik
jak mawiala moja polonistka: "Nie liczy sie ilosc ale jakosc" (chodzilo o wypracowania oczywiscie) biggrin.gif
Speedy
Murphy sądzi natomiast, że im program dłuższy , tym mniej sprawny winksmiley.jpg .
Sh4dow
Cytat
Liczba linii: 200798
Najdłuższy plik: ./lib/add/id3/module.tag.id3v2.php, linii: 3039
Najkrótszy plik: ./gui/test/templates/41d8cd98f00b204e9800998ecf8427e.tpl.php, linii: 2


a ja jeszcze nie zakonczylem wersji alpha1 blink.gif
Ciekawe ile bedzie na koncu smile.gif

{edit} No w sumie smarty sa w tym liczone, wiec naskrobalem troche mniej kodu. chociaz pewnie polowa to komentarze winksmiley.jpg

Bela_666 ja na razie laduje tylko 18 klas podstawowych, dojda jeszcze ewentualne modele i akcje. Chyba ze jakies cuda jeszcze znajde smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.