Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

114 Stron V   1 2 3 > » 

vokiel
Napisane: 29.05.2018, 10:37:08





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Pobierz dzień tygodnia pierwszego dnia miesiąca i uzupełnij daty o dni z poprzedniego miesiąca, od początku tygodnia do tego dnia.
Pobierz ostatni dzień tygodnia danego miesiąca i uzupełnij daty o dni z następnego miesiąca do końca tygodnia.

Możesz też pobrać numery tygodni dla pierwszego i ostatniego dnia miesiąca i wygenerować wszystkie daty dla tych tygodni.

BTW. DateTime Class Twoim przyjacielem ;-)
  Forum: PHP · Podgląd postu: #1233731 · Odpowiedzi: 3 · Wyświetleń: 156

vokiel
Napisane: 28.05.2018, 18:45:51





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Linuxpl.com, netbomb.pl
  Forum: Hydepark · Podgląd postu: #1233706 · Odpowiedzi: 4 · Wyświetleń: 220

vokiel
Napisane: 19.05.2018, 16:23:10





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Jeśli wiesz, że masz typ liczbowy to możesz od razu go rzucać do int
  1. $id = intval($_GET['id']);


Albo w ogóle przejdź na PDO.

  Forum: Przedszkole · Podgląd postu: #1233377 · Odpowiedzi: 4 · Wyświetleń: 116

vokiel
Napisane: 19.05.2018, 16:24:21





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Ustaw to w vhoście.
  Forum: Serwery WWW · Podgląd postu: #1233378 · Odpowiedzi: 3 · Wyświetleń: 306

vokiel
Napisane: 25.04.2018, 21:12:30





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Cytat(athabus @ 25.04.2018, 15:24:39 ) *
Wiem, że moje wcześniejsze projekty niestety takie są, bo nawet mnie bolą zęby jak do nich wracam ;-)


To pokazuje, że się ciągle rozwijasz, skoro teraz napisałbyś to inaczej, lepiej.

Dążenie do doskonałości, podnoszenie umiejętności pisanie lepszego kodu jest ważne, przy tym fajne i przyjemne. Uczenie się nowych rzeczy, nowych narzędzi, poprawianie workflow usprawnia pracę, daje więcej czasu na przemyślenie rozwiązań.
Ale trzeba też pamiętać, że nie pisze się kodu dla niego samego. To nie sztuka którą się wstawi do galerii. Owszem, gdy się pisze kod OS i ktoś ma z niego korzystać to jest to bardziej istotne. Niemniej, głównym celem jest wytworzenie oprogramowania, które działa i coś robi, usprawnia, ułatwia. Liczy się wynik, produkt, usługa.
Oczywiście jakość kodu i wybór rozwiązań ma znaczenie, tym bardziej w dłuższym czasie - utrzymanie, rozwój aplikacji. Ale nie można też popadać w skrajności i spędzać niezliczonych godzin na cezelowaniu kodu, wymyślania bardziej fikuśnych rozwiązań.


Wracając do tematu samej nauki dobrym rozwiązaniem jest dołączenie do jakiegoś projektu OS. Dzięki temu ma się już jakąś bazę z rozwiązaniami, w trakcie dopisywania kodu się je poznaje i wnika w szczegóły. To jest dużo łatwiejsze niż budowanie wszystkiego samemu od zera. Poza tym jest zawsze ktoś kto ten kod przejrzy, doda uwagi, poprawki etc. Więc jest też ten efekt nauki od kogoś.
  Forum: Hydepark · Podgląd postu: #1232532 · Odpowiedzi: 14 · Wyświetleń: 488

vokiel
Napisane: 24.04.2018, 20:47:44





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Nie przesadzaj z tym ultra, bo 10mm grubości nie odczujesz na co dzień, ale odczujesz mocno na portfelu. Rozmiar 10-11" do programowania się bardzo słabo nadaje. Albo będziesz miał dużą rozdzielczość i wszystko małe, ale większą i niewiele się zmieści na ekranie.
  Forum: Hydepark · Podgląd postu: #1232444 · Odpowiedzi: 14 · Wyświetleń: 530

vokiel
Napisane: 8.04.2018, 11:26:48





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Sporo moich znajomych robiących głównie w JS poleca Visual Studio Code, Atoma mniej. Microsoft bardzo dynamicznie je rozwija, jest dużo pluginów, konfigurowalny.
  Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1231737 · Odpowiedzi: 2 · Wyświetleń: 349

vokiel
Napisane: 5.04.2018, 19:47:13





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

IMHO PHPStorm jest obecnie najlepszym IDE do programowania w PHP. Do samych stron wystarczy WebStorm albo Visual Studio Code, czy nawet Atom.

Co do reszty środowiska to lokalnie Docker, do tego na serwerze już jak wolisz/możesz - docker albo natywnie.
W skrócie pracujesz sobie na lokalnym Dockerze z całą aplikacją/stroną jak na docelowym serwerze a później to wszystko wrzucasz gdy potrzebujesz. Wszystko zależy od sposobu pracy, czy projekt jest stale rozwijany, czy go robisz i wrzucasz na serwer po skończeniu itd.

Deploy zależy od środowiska, możliwości finansowych i fantazji. Rozwiązań jest multum, począwszy od Jenkinsa poprzez https://bitbucket.org/product/features/pipelines czy https://about.gitlab.com/features/gitlab-ci-cd/ aż po dedykowane rozwiązania do wrzucania tego do AWS/Azure etc.
  Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1231669 · Odpowiedzi: 13 · Wyświetleń: 447

vokiel
Napisane: 5.04.2018, 11:28:54





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Aptana, a szczególnie Dreamweaver rzeczywiście brzmi jak średniowiecze :-D

Warte przejrzenia https://github.com/ziadoz/awesome-php
  Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1231633 · Odpowiedzi: 13 · Wyświetleń: 447

vokiel
Napisane: 3.04.2018, 08:59:04





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Cytat(markonix @ 2.04.2018, 23:57:15 ) *
Takie dobre IDE, a taki żenujący poziom użytkownika sad.gif


Wręcz odwrotnie, skoro programista ustawił wersję na PHP7 to nie ma podpowiedzi do mysql_connect ponieważ

Cytat
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.
  Forum: Przedszkole · Podgląd postu: #1231502 · Odpowiedzi: 8 · Wyświetleń: 240

vokiel
Napisane: 31.03.2018, 10:02:04





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Polecam Postman oraz Insomnia. Obie napisane w Electronie, multiplatformowe.
  Forum: Komputery i oprogramowanie · Podgląd postu: #1231437 · Odpowiedzi: 5 · Wyświetleń: 276

vokiel
Napisane: 2.04.2018, 11:20:56





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Jak to mówią - zależy...

Weźmy jako przykład proste strony wizytówki.
Jako, że od kilku lat nie robi się sekcji nowości (bo i tak w nikt ich nie uzupełniał), to strona może być w większości przypadków statyczna. Pojawia się pytanie czy napisać ją w od razu jako statyczną, czy skorzystać z jakiegoś FW i wygenerować do statycznej. Moim zdaniem lepiej wykorzystać jakiś generator stron, bo modyfikacje projektu jest dużo wygodniejsze. Ale takie zmiany musi robić programista, bo zwykły pracownik firmy sobie z nimi nie poradzi. Do prostych poprawek tekstowych można nauczyć korzystania z GitHuba i CI/CD załatwi resztę, no ale to też może być nie do przejścia. Poza tym budowanie całego systemu CD to raczej nie jest budżet małej strony wizytówki.
Co zatem zrobić, żeby klient sobie sam edytował stronę - CMS. Pomimo, że w wielu wypadkach będzie to przerost formy nad treścią, jednak rozwiązuje problem prostych aktualizacji strony przez klienta.

Aplikacje i frameworki.
Rzeczywiście ostatnio poszło w kierunku bycia bardziej pro. Nowoczesne podejścia, narzędzia, systemy testowania i budowania/dostarczania itd. Nawet proste aplikacje buduje się z dużym rozmachem (i często nadmiarem). To ma swoje plusy i minusy. Jeśli zna się dobrze platformę, narzędzia, framework - to praca z nimi jest łatwa i przyjemna. Problem jest tylko gdy się z tym wszystkim zaczyna, próg wejścia w programowanie jest obecnie duży wyższy niż kiedyś.
Z gotowymi narzędziami nie ma potrzeby wymyślania rozwiązań do popularnych zagadnień. Jednak większość projektów jest bardzo podobna, więc "zrąb aplikacji" może być ten sam. Korzystanie z popularnych, uznanych narzędzi przynosi się długofalowe plusy - łatwiej o pracowników, którzy znają dane rozwiązanie, zwykle duże projekty są długo utrzymywane, są wersje LTS, aktualizacje bezpieczeństwa itd. Minusem jest to, że trzeba się czasami dostosować do FW, bo czegoś się nie da zrobić, albo przyjęte jest robić w jakiś sposób.

Zostają jeszcze micro frameworki i komponenty. Które w wielu przypadkach są najlepszym rozwiązaniem - nie narzucają tylu rzeczy, a zapewniają rozwiązania najpopularniejszych zagadnień.

  Forum: Hydepark · Podgląd postu: #1231467 · Odpowiedzi: 26 · Wyświetleń: 1 552

vokiel
Napisane: 28.03.2018, 14:05:10





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

A czym są te URLe?

  1. <input name="URL" type="hidden" value="https://mojadomena.pl/index.php?akcja=dotpay" />
  2. <input name="URLC" type="hidden" value="https://mojadomena.pl/urlc_rejestracja.php" />
  Forum: PHP · Podgląd postu: #1231289 · Odpowiedzi: 12 · Wyświetleń: 259

vokiel
Napisane: 27.03.2018, 19:08:06





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Tak czy inaczej sprawdź ustawienia w dotPay, bo może masz tam ustawione http lub www, popraw adres i wtedy sprawdzaj dalej.

Poza tym standardowe przekierowanie z www na bez-www z uwzględnieniem http(s).
Kod
  # Set "protossl" to "s" if we were accessed via https://.  This is used later
  # if you enable "www." stripping or enforcement, in order to ensure that
  # you don't bounce between http and https.
  RewriteRule ^ - [E=protossl]
  RewriteCond %{HTTPS} on
  RewriteRule ^ - [E=protossl:s]

  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]


Samo przekierowanie http => https możesz zrobić na poziomie vhostów (wszystko z http od razu przekierować na https):
Kod
<VirtualHost *:80>
    ServerName foo.com
    ProxyPass / https://foo.com/
</VirtualHost>
  Forum: PHP · Podgląd postu: #1231241 · Odpowiedzi: 12 · Wyświetleń: 259

vokiel
Napisane: 27.03.2018, 19:16:36





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Cytat(Mateusz022 @ 27.03.2018, 14:39:12 ) *
Czy warto iść w stronę node.js oraz socket.io?
Jeśli tak - Co z Apache? Node.js nie może działać na porcie używanym przez apache. Co jeśli chciałbym zainstalować certyfikat SSL?


Tak, możesz używać socketów z nodejs i socket.io, możesz też osiągnąć to samo w PHP. Jednak w nodejs będzie szybciej, jest więcej przykładów.
Socket do komunikacji z komunikatorem będzie działał na innym porcie niż Apache. Ktoś wchodzi na stronę na porcie 80/443, a socket do czata łączy się do serwera na innym.

Cytat(Mateusz022 @ 27.03.2018, 14:39:12 ) *
Co z PHP? Gdy w pliku app.js, uruchamianym komendą node, zmienię nazwę pliku z .html na .php, strona się nie wyświetla, a dodatkowo pobiera mi jej zawartość jako plik.


No ale skoro masz plik app.js (JavaScript) to czemu chcesz zmieniać jego nazwę na html/php i uruchamiać przez PHP? Trochę bez sensu, nieprawdaż?
Uruchamiasz po prostu nodejs z app.js do obsługi socketa do czata a serwer Apache + PHP działa sobie tak jak działał dotychczas.
  Forum: Przedszkole · Podgląd postu: #1231243 · Odpowiedzi: 2 · Wyświetleń: 163

vokiel
Napisane: 27.03.2018, 19:11:39





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Pierwsze pytanie - czemu iframe skoro tyle z nim problemów? Nie lepiej zrobić to wewnątrz aplikacji?

O ile jeszcze sama treść maila może być bezpieczniej w iframe (i mniej problemów z ostylowaniem). O tyle formularz tworzenia nowego maila spokojnie może być wewnątrz strony w której ten mailbox jest uruchomiony.
  Forum: XML, AJAX · Podgląd postu: #1231242 · Odpowiedzi: 2 · Wyświetleń: 380

vokiel
Napisane: 7.04.2018, 12:41:36





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Dwie opcje:
1. Ktoś robi te modyfikacje a Ty za nie płacisz. Wtedy zwracasz się do software-house, albo szukasz freelancerów.
2. Nie chcesz za to płacić. W takim wypadku robisz z tego projekt opensource, odpowiednią licencję i szukasz zapaleńców.
  Forum: Hydepark · Podgląd postu: #1231733 · Odpowiedzi: 5 · Wyświetleń: 485

vokiel
Napisane: 11.03.2018, 12:23:26





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

PHP się ciągle, stabilnie rozwija. Ma swoją niszę, która jeszcze długo nie zostanie zajęta. Owszem wiele przenosi się do do innych technologii, np JavaScript bo jest łatwiej mieć JS dev po obu stronach. Jednak PHP jest na tyle dojrzałe i stabilne, że można mu ufać i planować coś na dłuższy czas. Wiadomo, że nawet za kilka lat znajdzie się bez problemu programistę ze znajomością Symfony 3, który w razie potrzeby rozbuduje serwis czy coś w nim poprawi. Poza tym, przez długi czas powstało masę rozwiązań do większości zagadnień związanych z aplikacjami webowymi. Są one co prawda różnej jakości, ale na szybko można postawić czy też kupić dowolny serwis. Można przepisać na nowy język kolejną aplikację, z tym, że to są koszty i czas. Po co to robić, skoro jest gotowe rozwiązanie, sprawdzone przez lata. Z czasem część z tych rozwiązań będzie się starzało i będzie zastępowane nowymi, w innych językach. Bo ktoś nie będzie chciał stawiać PHP dla jednej aplikacji (gdy wszystkie inne ma w innej), bo nikt tego nie napisał jeszcze w danym języku i ktoś chce być pierwszy, bo ktoś po godzinach klepie sobie projekt żeby się nauczyć nowego języka itd. Tak czy inaczej do napisania i spopularyzowania zastępników na podobnym poziomie jak np Drupal czy WordPress trzeba sporo czasu.

Rynek PHP jest głównie rynkiem mid-small. Nie buduje się na prawdę dużych serwisów (są wyjątki, wiadomo), nie mniej do wielu zastosowań LAMP jest bardzo wygodny, a przy tym wszędzie łatwo dostępny i co za tym idzie tani. Nie każda firma potrzebuje super-enterprise za grube miliony. Jakby nie było firmy na rynku to głównie średnie i małe przedsiębiorstwa.

Do tego dochodzi niski próg wejścia, bo można zaczynać od pisania skryptów i z czasem przejść do programowania. Przez to konkurencja duża, a co za tym idzie stawki nie najwyższe.
  Forum: Hydepark · Podgląd postu: #1230487 · Odpowiedzi: 12 · Wyświetleń: 765

vokiel
Napisane: 24.02.2018, 11:59:54





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Proponuję nie męczyć się z tym na Windows. Raczej masz minimalne szanse, że aplikację uruchomisz na serwerze z Windowsem.

Najszybciej teraz jest skorzystać z Dockera, masz tam gotowe obrazy PHP + Apache/Nginx + MySQL/MariaDB, jednym poleceniem uruchamiasz i możesz działać.
  Forum: Przedszkole · Podgląd postu: #1229674 · Odpowiedzi: 2 · Wyświetleń: 230

vokiel
Napisane: 23.02.2018, 20:18:13





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Pliki projektu masz w utf-8?
Przy imporcie wybierasz kodowanie utf-8?
  Forum: Przedszkole · Podgląd postu: #1229661 · Odpowiedzi: 10 · Wyświetleń: 263

vokiel
Napisane: 7.02.2018, 20:19:30





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Wysyłaj przez SMTP będzie większa pewność, że dotrze.

Opóźnienie może wynikać z konfiguracji serwera, to jakiś hosting współdzielony?
  Forum: PHP · Podgląd postu: #1228834 · Odpowiedzi: 4 · Wyświetleń: 283

vokiel
Napisane: 10.02.2018, 13:56:35





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Cytat(SmokAnalog @ 9.02.2018, 23:52:51 ) *
Darko, nie oUbolewam nad tym, że przez całą noc crawluję zaledwie 20-30 tys. wyników,


Jeśli to za mało to mam kilka propozycji
* cURL zamiast file_get_contnets (w wielu wypadkach cURL jest szybsze, więcej rzeczy można ustawić)
* curl_multi - aby zwielokrotnić ilość pobieranych zasobów
* kilka procesów na raz

Prosty przykład:
  1. <?php
  2.  
  3. for($i = 259010; $i<259310; $i++){
  4. $url = 'http://forum.php.pl/index.php?showtopic=' . $i;
  5. $html = file_get_contents($url);
  6. $usage = memory_get_usage();
  7. $usageTrue = memory_get_usage(true);
  8. echo date('H:i:s').'.'.gettimeofday()['usec'].' | ID: '.$i.' length: '.strlen($html).' | usage: '.$usage.' | usage(true) '.$usageTrue.PHP_EOL;
  9. }


Test (obcięte wyniki do dwóch pierwszych i ostatnich)

  1. $ time php file_get_contents.php
  2.  
  3. 13:48:46.202671 | ID: 259010 length: 221566 | usage: 592840 | usage(true) 2097152
  4. 13:48:46.291102 | ID: 259011 length: 40984 | usage: 414280 | usage(true) 2097152
  5. ..
  6. 13:49:54.433896 | ID: 259308 length: 38852 | usage: 410184 | usage(true) 2097152
  7. 13:49:54.573305 | ID: 259309 length: 76766 | usage: 447048 | usage(true) 2097152
  8.  
  9. real 1m8.822s
  10. user 0m0.193s
  11. sys 0m0.284s


Wersja na curl:
  1. <?php
  2.  
  3. for($i = 259010; $i<259310; $i++){
  4. $url = 'http://forum.php.pl/index.php?showtopic=' . $i;
  5.  
  6. $ch = curl_init();
  7. curl_setopt($ch, CURLOPT_URL, $url);
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
  10. curl_setopt($ch, CURLOPT_HEADER, 0);
  11. $html = curl_exec($ch);
  12. curl_close($ch);
  13.  
  14. $usage = memory_get_usage();
  15. $usageTrue = memory_get_usage(true);
  16. echo date('H:i:s').'.'.gettimeofday()['usec'].' | ID: '.$i.' length: '.strlen($html).' | usage: '.$usage.' | usage(true) '.$usageTrue.PHP_EOL;
  17. }
  18.  


  1. $ time php curl.php
  2.  
  3. 13:50:54.645658 | ID: 259010 length: 221568 | usage: 594096 | usage(true) 2097152
  4. 13:50:54.875325 | ID: 259011 length: 40984 | usage: 415536 | usage(true) 2097152
  5.  
  6. 13:51:41.684053 | ID: 259308 length: 38852 | usage: 411440 | usage(true) 2097152
  7. 13:51:41.888811 | ID: 259309 length: 76766 | usage: 448304 | usage(true) 2097152
  8.  
  9. real 0m48.066s
  10. user 0m0.227s
  11. sys 0m0.270s


A bez curl_setopt($ch, CURLOPT_HEADER, 0); trwało porównywalnie do wersji z file_get_contents:
  1. real 0m56.110s
  2. user 0m0.176s
  3. sys 0m0.185s


Wersja z curl_multi
  1. <?php
  2.  
  3. $urls = [];
  4. for($i = 259010; $i<259310; $i++){
  5. $urls[] = $i;
  6. }
  7.  
  8. $ch_multi = curl_multi_init();
  9. $ch_arrr = [];
  10.  
  11. $options = [
  12. CURLOPT_RETURNTRANSFER => true,
  13. CURLOPT_FOLLOWLOCATION => true,
  14. CURLOPT_MAXREDIRS => 3,
  15. CURLOPT_HEADER => 0,
  16. CURLOPT_CONNECTTIMEOUT => 3,
  17. ];
  18.  
  19. for ($i = 0; $i < 2; $i++){
  20. $ch = curl_init();
  21. $options[CURLOPT_URL] = 'http://forum.php.pl/index.php?showtopic='.$urls[$i];
  22. curl_setopt_array($ch, $options);
  23. curl_multi_add_handle($ch_multi, $ch);
  24. }
  25.  
  26. do {
  27. while (($execrun = curl_multi_exec($ch_multi, $running)) == CURLM_CALL_MULTI_PERFORM);
  28. if($execrun != CURLM_OK){
  29. break;
  30. }
  31.  
  32. while ($done = curl_multi_info_read($ch_multi)) {
  33. $html = curl_multi_getcontent($done['handle']);
  34.  
  35. $usage = memory_get_usage();
  36. $usageTrue = memory_get_usage(true);
  37. echo date('H:i:s').'.'.gettimeofday()['usec'].' | ID: '.$urls[$i].' length: '.strlen($html).' | usage: '.$usage.' | usage(true) '.$usageTrue.PHP_EOL;
  38.  
  39. ++$i;
  40. if (!empty($urls[$i])) {
  41. $ch = curl_init();
  42. $options[CURLOPT_URL] = 'http://forum.php.pl/index.php?showtopic='.$urls[$i];
  43. curl_setopt_array($ch, $options);
  44. curl_multi_add_handle($ch_multi, $ch);
  45. }
  46. curl_multi_remove_handle($ch_multi, $done['handle']);
  47. }
  48. } while ($running);
  49.  
  50. curl_multi_close($ch_multi);


  1. $ time php curl_multi.php
  2. 13:55:01.296270 | ID: 259011 length: 40987 | usage: 442440 | usage(true) 2097152
  3. 13:55:01.425666 | ID: 259012 length: 41189 | usage: 444104 | usage(true) 2097152
  4.  
  5. 13:55:33.281197 | ID: 259308 length: 76766 | usage: 518152 | usage(true) 2097152
  6. 13:55:33.370113 | ID: 259309 length: 38852 | usage: 518112 | usage(true) 2097152
  7.  
  8. real 0m32.255s
  9. user 0m20.641s
  10. sys 0m11.609s


Podsumowanie
* file_get_contents: 1m8.822s
* curl: 0m48.066s
* curl_multi: 0m32.255s
  Forum: Przedszkole · Podgląd postu: #1228952 · Odpowiedzi: 47 · Wyświetleń: 1 682

vokiel
Napisane: 30.01.2018, 12:49:28





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Skoro mówisz o testach, to możesz tam mockować
Kod
$this->client
i wtedy debugowanie gładko do niego wejdzie. Do tego oddzielne testy samego klienta i masz przetestowane wszystko w dwóch krokach.
  Forum: Przedszkole · Podgląd postu: #1228302 · Odpowiedzi: 6 · Wyświetleń: 322

vokiel
Napisane: 12.01.2018, 22:11:05





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Wrzuć bloga do katalogu /blog a sklep zrób na domenie głównej.
  Forum: Przedszkole · Podgląd postu: #1227477 · Odpowiedzi: 3 · Wyświetleń: 297

vokiel
Napisane: 22.10.2017, 11:52:32





Grupa: Zarejestrowani
Postów: 2 397
Dołączył: 12.03.2007

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

Docker compose czy bezpośrednio z obrazu?

Jeśli to pierwsze, to zrób mapowanie volumes do katalogu projektu, np:
  1. version: '2'
  2.  
  3. services:
  4. php:
  5. build:
  6. context: ./docker/php/
  7. dockerfile: Dockerfile
  8. ports:
  9. - "9000:9000"
  10. volumes_from:
  11. - www
  12.  
  13. apache:
  14. build:
  15. context: ./docker/apache/
  16. dockerfile: Dockerfile
  17. ports:
  18. - "80:80"
  19. - "443:443"
  20. depends_on:
  21. - php
  22. volumes_from:
  23. - www
  24.  
  25. www:
  26. image: busybox
  27. volumes:
  28. - .:/var/www/html


W taki sposób operacje na plikach będą widoczne od razu w Dockerze.
  Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1223435 · Odpowiedzi: 2 · Wyświetleń: 700

114 Stron V   1 2 3 > » 

New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 16.07.2018 - 23:26