Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie RecursiveDirectoryIterator
Forum PHP.pl > Forum > PHP
MESSIAH :)
Mam mały problem z RecursiveDirectoryIterator + RecursiveIteratorIterator. Otóż na localhoście(Windows + PHP Version 5.6.11) sortuje mi pliki w inny sposób niż na linuksie(PHP Version 5.5.24). Czym to jest spowodowane? Mianowicie chodzi mi o includowanie plików, które zawierają namespace w swojej strukturze i chciałbym ustalić ich kolejność wczytywania, jak mogę tego dokonać?
Comandeer
A po co chcesz ustalić kolejność ich wczytywania, skoro coś takiego powinien robić z automatu autoloader?
MESSIAH :)
Mam własny smile.gif a poza tym dla każdego innego skryptu ciągle trzeba dodawać i dodawać nowe autoloadery.
Comandeer
Nawet jak masz własny to powinien includować tylko to, co jest w danej chwili potrzebne - stąd się nazywa autoloaderem.

Nie wiem z jakich skryptów korzystasz, ale wystarczy użyć composera i de facto problemu nie ma - dostajemy jeden autoloader.
MESSIAH :)
A nie można zaincludować wszystkiego od razu? W czym to przeszkadza? No mam np: kilka skryptów w jednym skrypcie i dla każdego musiałbym composerem utworzyć autoloader co daje kilka autoloaderów.
Comandeer
No przeszkadza choćby w tym, że teraz kombinujesz jak koń pod górkę ze skanowaniem wszystkich folderów wink.gif

Nie bardzo rozumiem co masz na myśli mówiąc "kilka skryptów w skrypcie"? No a composerowi wystarczy dać info o namespace i folderze, gdzie powinien szukać i to powinno mu wystarczyć do wygenerowania uniwersalnego autoloadera.
MESSIAH :)
Kilka skryptów czyli repozytoriów z np: githuba itp. Czyli dla każdego będzie oddzielny plik composer. Skanowanie zawsze się przyda.
memory
Zdajesz sobie sprawe, że robisz zawsze od dupy strony ?
MESSIAH :)
Co w tym takiego dziwnego? Każdy plik jest includowany czy teraz czy później co za różnica? Pozwólcie że coś wam wyjaśnię. Mam mały skrypcik z githuba który posiada instalator composera. I co się okazuje? Owy skrypcik posiada plik z funkcjami oraz swój własny autoloader klas. WIęc sprawa wygląda tak autoloader ładuje autoloader. Nie wiem jak wy ale ja nie lubię jeździć samochodem który został załadowany na lawetę. Dlatego wolę wprowadzać własne innowacyjne rozwiązania.
vokiel
Cytat(MESSIAH :) @ 7.10.2015, 23:18:55 ) *
Co w tym takiego dziwnego? Każdy plik jest includowany czy teraz czy później co za różnica?


Rożnica jest taka, że w wielu aplikacjach/stronach nie każdy plik jest potrzebny przy każdym żądaniu. Zatem ładowanie ich wszystkich za każdym razem to nadmiarowość i niepotrzebne spowalnianie aplikacji.
MESSIAH :)
Przy zaincludowanych 23 plikach(router + skaner plików + autoinclude) o średniej wielkości plików waha się w granicach 0,035 sekundy na serwerze współdzielonym. Jaki czas według was jest optymalny i jakiego mam się trzymać?
redeemer
Cytat
...
Dlatego wolę wprowadzać własne innowacyjne rozwiązania.
No właśnie widać jak Twoje "innowacyjne" rozwiązania się wysypują bo założyłeś, że od systemu zawsze dostaniesz taką samą kolejność plików i katalogów (ciekawe ile jeszcze błędnych założeń zrobiłeś).
KsaR
Cytat(MESSIAH :) @ 7.10.2015, 23:18:55 ) *
Co w tym takiego dziwnego? Każdy plik jest includowany czy teraz czy później co za różnica? Pozwólcie że coś wam wyjaśnię. (...) Nie wiem jak wy ale ja nie lubię jeździć samochodem który został załadowany na lawetę. Dlatego wolę wprowadzać własne innowacyjne rozwiązania.

Nie uzywaj rzeczy ktorych nie potrafisz bo to zwykłe zapychanie w twoim wypadku.

W tej chwili dla przykladu zawolasz caly tlum osob zeby sie spytac o godzine, gdy wystarczy tylko jednej/dwóch ktore napewno mają zagarek czy telefon z godzina smile.gif "innowacyjne rozwiązanie" ;)
Pyton_000
@MESSIAH - powinieneś zostać wykładowcą na jakiejś uczelni, i pretendować do nagrody ....
Comandeer
@MESSIAH smile.gif polecam po prostu dobrze się zapoznać z Composerem i tyle… Twoje rozwiązanie jest tak bardzo nieinnowacyjne, że aż drażni wink.gif I uwierz mi - starczy Ci jeden plik autoloadu
MESSIAH :)
Cytat(redeemer @ 8.10.2015, 07:30:47 ) *
No właśnie widać jak Twoje "innowacyjne" rozwiązania się wysypują bo założyłeś, że od systemu zawsze dostaniesz taką samą kolejność plików i katalogów (ciekawe ile jeszcze błędnych założeń zrobiłeś).

No sory ale chyba zawsze każdy czegoś oczekuje, jeśli czegoś nie oczekujesz musisz być idiotą. Dlaczego od systemu mam nie wymagać zawsze tego samego? Chyba od zara dziejów naciskając ctr+v kopiowało się pliki. Jeśli w Windowsie nacisnę ctr+v oczekuje iż pliki zostaną skopiowane, a tu dajmy na to przykład np: w Windows 10 ctr+v usuwa pliki. Potem developerzy z Microsoft odpowiedzą Ci: "Dlaczego założyłeś, że od systemu zawsze dostaniesz to samo po naciśnięciu tej samej kombinacji klawiszy?". Kolego jeśli w tym samym systemie robię tą samą akcję co jakiś czas to oczekuje takiej samej odpowiedzi! A w tym przypadku widać wyraźnie jakim nieudolnym systemem jest PHP.
nospor
Cytat
sortuje mi pliki w inny sposób niż na linuksie

Cytat
A w tym przypadku widać wyraźnie jakim nieudolnym systemem jest PHP.

Ugryzlem sie w jezyk bo chcialem napisac cos innego wink.gif Napisze to:
RecursiveIterator nie sluzy do sortowania plikow a do ich pobierania. A to w jakiej kolejnosci są pobierane zalezy bardziej od systemu niż od samego php gdyż to system zwraca liste plikow dla php
MESSIAH :)
Może być - tutaj penie masz słuszną rację. Więc w takim wypadku PHP powinno naprawić ten błąd i zrobić standard dla Win i Unix.
netmare
Cytat(MESSIAH :) @ 8.10.2015, 15:32:31 ) *
Chyba od zara dziejów naciskając ctr+v kopiowało się pliki.


Jeśli zara miało znaczyć zarania, to zapewne tak, zwłaszcza w DOS.

Cytat(MESSIAH :) @ 8.10.2015, 15:43:17 ) *
Może być - tutaj penie masz słuszną rację. Więc w takim wypadku PHP powinno naprawić ten błąd i zrobić standard dla Win i Unix.


Ja myślę że, zamiast tracić czas na tak nieudolne twory jak PHP, powinieneś napisać własny interpreter, postawić go na własnym serwerze WWW, stojącym na Twoim autorskim OS. Może jeszcze udałoby Ci się udoskonalić architekturę procków...
MESSIAH :)
Na pewno bym tego dokonał. PHP zrobiłby standard dla RecursiveIteratorIterator gdyby ktoś im to zgłaszał. Widocznie innym nie przeszkadza to jak mają posegregowane gdyż używają tej funkcji w innych celach.
redeemer
Cytat(MESSIAH :) @ 8.10.2015, 15:32:31 ) *
Chyba od zara dziejów naciskając ctr+v kopiowało się pliki.
Nie.

Cytat(MESSIAH :) @ 8.10.2015, 15:32:31 ) *
Kolego jeśli w tym samym systemie robię tą samą akcję co jakiś czas to oczekuje takiej samej odpowiedzi! A w tym przypadku widać wyraźnie jakim nieudolnym systemem jest PHP.
Przecież ty robisz to na dwóch innych systemach, a same systemy mogą też używać różnych systemów plików (pewnie nawet nie wiesz co to jest).

Musisz się jeszcze trochę nauczyć jak działają komputery, bo jedynym nieudolnym to jesteś Ty.

Cytat(MESSIAH :) @ 8.10.2015, 16:04:45 ) *
Na pewno bym tego dokonał.
Taaaa :-)

Cytat(MESSIAH :) @ 8.10.2015, 16:04:45 ) *
PHP zrobiłby standard dla RecursiveIteratorIterator gdyby ktoś im to zgłaszał. Widocznie innym nie przeszkadza to jak mają posegregowane gdyż używają tej funkcji w innych celach.
Zgłoś im, zobaczymy co odpowiedzą (bez wysyłania wiem co).
MESSIAH :)
Pogratulować tylko twojemu pracodawcy takiego pracownika który uważa że ten sam program na Windows i na Linuxie po naciśnięciu entera wykona całkiem inne akcje. Jesteś bardziej nieudolny niż o tym sądzisz.
netmare
Cytat(MESSIAH :) @ 8.10.2015, 16:04:45 ) *
Na pewno bym tego dokonał.


Zatem pozostaje nam czekać na efekty. Jak już tego dokonasz to podziel się z nami tymi dokonaniami, żebyśmy mogli porzucić już wszystko co nieudolne. Z góry dziękuję w imieniu swoim i całej ludzkości.

P.S. Skoro nie wiesz jak posortować pliki, to jak ogarniesz to w swoim OS? Czyżbyś chciał zaimplementować AI, żebyś nie musiał kombinować z algorytmami sortowania?

Edit:
Cytat(MESSIAH :) @ 8.10.2015, 16:18:14 ) *
Pogratulować tylko twojemu pracodawcy takiego pracownika który uważa że ten sam program na Windows i na Linuxie po naciśnięciu entera wykona całkiem inne akcje. Jesteś bardziej nieudolny niż o tym sądzisz.


A ja tam współczuje Twojemu pracodawcy - temu przyszłemu, bo przecież z tą wiedzą to pewnie nie znalazłeś jeszcze żadnego godnego zatrudnienia Cię.

EOT
redeemer
Z mojej strony też EOT, bo szkoda czasu.
nospor
EOT general. Sam autor tematu o to sie prosi
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.