Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

586 Stron V  « < 500 501 502 503 504 > »   
Reply to this topicStart new topic
> Jeden Wielki OffTopick, jeśli masz pisać na temat, nie wchodź!
Damonsson
post
Post #10021





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


[*] znicz wiary i nadziei dla osoby, która dotknie kodu po Tobie (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10022





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Like It!

@Damonsson Takie potworki widuję dość często. Albo się od nich oddalam albo robię reformat całego kodu w Stormie z nadzieją że On mi otworzy oczy (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
buliq
post
Post #10023





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


zastanawiam się co było myślą przewodnia podczas tworzenia takiej ładnej linijki (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
tzm
post
Post #10024





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


inlineowcy (IMG:style_emoticons/default/biggrin.gif) wlos sie jezy na glowie
Go to the top of the page
+Quote Post
starach
post
Post #10025





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Tak z ciekawości. Jakbyście to wy zapisali w takim razie?
Go to the top of the page
+Quote Post
aniolekx
post
Post #10026





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


Cytat(starach @ 27.02.2015, 16:55:46 ) *
Tak z ciekawości. Jakbyście to wy zapisali w takim razie?


może obejrzyj to wideo (głownie mam na myśli ten kawałek pod koniec, kiedy to autor robi refaktoryzacje kodu) i opowiedz wtedy na pytanie która wersja kodu jest czytelniejsza.
Go to the top of the page
+Quote Post
scanner
post
Post #10027





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Zacznijmy od tego, że fajnie by było, gdybyś dał jakieś dane wejściowe i wynik spodziewany - jakiegoś unittesta by człowiek mógł zrobić - a tak to trzeba zgadywać, co autor miał na myśli grzesząc bardziej niż przy użyciu GoTo…
Nigdy nie zagnieżdża się ternary, nigdy.
Go to the top of the page
+Quote Post
solificati
post
Post #10028





Grupa: Zarejestrowani
Postów: 26
Pomógł: 10
Dołączył: 17.03.2012

Ostrzeżenie: (0%)
-----


Cytat(starach @ 27.02.2015, 15:55:46 ) *
Tak z ciekawości. Jakbyście to wy zapisali w takim razie?

Napisz testy jednostkowe to może ktoś się pokusi o rozwiązanie, bo analizowanie tego kodu jest średnio przyjemne. Ten trzeci argument replace to jest "wszystko do ostatniego (z maksymalnie dwóch) slasha"?

Coś w stylu:

Kod
(defn magic-function [ class ]
  (let [ magic-part (join "\\" (pop (split class #"\\"))) ]
    (lower-case (replace magic-part #"\\|/" "."))))
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10029





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Domyślam się że autor sam nie będzie wiedział po tygodniu.
Go to the top of the page
+Quote Post
starach
post
Post #10030





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Trochę mi się wierzyć nie chce że dwie ( banalne ) instrukcje warunkowe zapisane liniowo i zagnieżdżone sprawiają takim starym wygom jak wy problem. Wybaczcie, ale mam wrażenie że szukacie dziury w całym.

Ten fragment odpowiada za tworzenie identyfikatora z nazwy klasy \ImTheVendor\MySweetProject\Library\UberClass = imthevendor.mysweetproject i napisałem go dla celów identyfikowania DIC w moim frameworku dla celów jego keszowania.

@aniolekx: Zaraz obejrzę ten screencast.

Go to the top of the page
+Quote Post
solificati
post
Post #10031





Grupa: Zarejestrowani
Postów: 26
Pomógł: 10
Dołączył: 17.03.2012

Ostrzeżenie: (0%)
-----


Cytat(starach @ 27.02.2015, 17:45:06 ) *
Ten fragment odpowiada za tworzenie identyfikatora z nazwy klasy \ImTheVendor\MySweetProject\Library\UberClass = imthevendor.mysweetproject i napisałem go dla celów identyfikowania DIC w moim frameworku dla celów jego keszowania.

Czyli

Kod
(defn magic-function [ path ]
  (lower-case (join "." (take 2 (split path #"\\|/")))))


Clojure to jednak ładny język.

Apropo, niesystematycznie sprawdzasz separatory ścieżek - w replece oba, ale w strpos już nie.

Ten post edytował solificati 27.02.2015, 17:57:31
Go to the top of the page
+Quote Post
starach
post
Post #10032





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Cytat(solificati @ 27.02.2015, 17:54:22 ) *
(...)
Apropo, niesystematycznie sprawdzasz separatory ścieżek - w replece oba, ale w strpos już nie.


Masz rację, ale to są naleciałości z poprzedniej wersji. Metodę ::createId($class) zmieniałem o drugiej w nocy. (IMG:style_emoticons/default/tongue.gif) W finalnej wersji jest tylko backslash jako separator sprawdzany.
Tak ona wygląda w całej okazałości.
  1. /**
  2.  * Create id from class name
  3.  * Takes two first parts of a class and turns them into id
  4.  *
  5.  * example:
  6.  * <pre>
  7.  * ::createId('\Vendor\MyProject\SomeClassName');
  8.  * output: vendor.myproject
  9.  * </pre>
  10.  *
  11.  * @param string $class
  12.  * @return string
  13.  */
  14. static public function createId($class) {
  15. $class = trim($class, '\\');
  16. return strtolower(str_replace('\\', '.', (($s1 = strpos($class, '\\')) ? substr($class, 0, (($s2 = strpos($class, '\\', $s1+1)) ? $s2 : $s1)) : $class)));
  17. }


Ten post edytował starach 27.02.2015, 18:07:00
Go to the top of the page
+Quote Post
solificati
post
Post #10033





Grupa: Zarejestrowani
Postów: 26
Pomógł: 10
Dołączył: 17.03.2012

Ostrzeżenie: (0%)
-----


Czyli w php możnaby zrobić coś w stylu:

  1. return strtolower(implode(".",array_slice(explode("\\", $class),0,2)))


No fakt, php miało zawsze nieprzemyślaną kolejność argumentów.
Go to the top of the page
+Quote Post
starach
post
Post #10034





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


W poprzedniej wersji było na implode i explode, ale te funkcje są wolniejsze od strpos i substr.

edit>
Chociaż przyznam że dla tego akurat przykładu nie sprawdzałem. W związku z użyciem str_replace rozwiązanie na implode i explode może być szybsze.

Ten post edytował starach 27.02.2015, 18:29:44
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10035





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A co ty tego potworka wykonujesz 1kkk razy (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
starach
post
Post #10036





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 27.02.2015, 21:08:09 ) *
A co ty tego potworka wykonujesz 1kkk razy (IMG:style_emoticons/default/questionmark.gif)

Szacuję, że w ogólnym rozrachunku "ten potworek" (IMG:style_emoticons/default/tongue.gif) może być wywoływany nawet trzydzieści kilka razy w jednym wywołaniu. Coś za coś. Nie jest to na pewno jeszcze tak wydaje jak być powinno, ale definitywnie zadecyduje o tym profilowanie.

Za jakiś bliżej nieokreślony czas może wypuszczę całe stado swoich potworków i wtedy ocenisz czy kod jest faktycznie taki tragiczny.

<joke>
,a na razie MILCZ NIEWIERNY, bo spadnie na ciebie gniew script-kiddie i rzeki spłyną pastą termoprzewodzącą z twych lędźwi. (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
tzm
post
Post #10037





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


poda mi ktos wady i zalety czystej instalacji php, mysql, apache, phpmyadmin vs xampp/mamp/lamp na linuxie? pierwszy raz sie skusilem o manualne instalowanie srodowiska i komponentow do pracy
Go to the top of the page
+Quote Post
Posio
post
Post #10038





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

Ostrzeżenie: (0%)
-----


Na linuxie to bez róznicy moim zdaniem, na windowsie troche czasu zaoszczędza. To po prostu prekonfigurowana paczka, nic wiecej.
Go to the top of the page
+Quote Post
!*!
post
Post #10039





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(solificati @ 27.02.2015, 18:13:57 ) *
Czyli w php możnaby zrobić coś w stylu:

  1. return strtolower(implode(".",array_slice(explode("\\", $class),0,2)))


No fakt, php miało zawsze nieprzemyślaną kolejność argumentów.



lub

  1. preg_match('#([\w]+)\\\([\w]+)#', $class, $match);
  2. return preg_replace('#\\\#','.', strtolower($match[0]));
Go to the top of the page
+Quote Post
tzm
post
Post #10040





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


Cytat(Posio @ 28.02.2015, 16:50:30 ) *
Na linuxie to bez róznicy moim zdaniem, na windowsie troche czasu zaoszczędza. To po prostu prekonfigurowana paczka, nic wiecej.



ok, a ogarnij mi to... mam w pracy skrypty ponizej php 5.3 i takie co na 5.5+ dzialaja. nie do konca kompatybilne byly te wersje i na macu sie przelaczam w mampie miedzy wersjami. jak taki patent zrobic majac recznie instalowane php? bo rozumiem ze musze miec dwie wersje php zainstalowane i co dalej?
Go to the top of the page
+Quote Post

586 Stron V  « < 500 501 502 503 504 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.06.2026 - 14:12