Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Łukasz Socha, dodany: 18.04.2015 11:19, tagi: php, mvc

W ostatniej części artykułu o wzorcu MVC stworzymy pozostałe elementy prostego systemu artykułów. Dobrą praktyką przy budowaniu aplikacji z użyciem wzorca MVC jest „rozbicie” całego kodu na poszczególne, mniejsze moduły. W poprzedniej części stworzyliśmy fragmenty kodu do obsługi kategorii, teraz zajmiemy się artykułami. Tworzymy kontroler artykułów src/Controller/Article.php Kontroler artykułów posiada 4 akcje: index() – metoda […]

Autor wpisu: Łukasz Socha, dodany: 17.04.2015 10:57, tagi: php, mvc

W drugiej części artykułu o wzorcu MVC stworzymy część aplikacji, odpowiedzialną za obsługę kategorii. Tworzymy kontroler kategorii src/Controller/Category.php Kontroler kategorii posiada 3 akcje: index() – metoda ta pobiera z modelu wszystkie kategorie i przekazuje je do widoku. Na koniec ładuje szablon HTML add() – metoda wyświetla szablon z formularzem dodawania kategorii oraz przekazuje dane z […]

Autor wpisu: Łukasz Socha, dodany: 16.04.2015 13:17, tagi: php, mvc

Ponad trzy i pół roku temu na moim blogu pojawił się cykl MVC w praktyce. Mimo, że minęło już tyle lat od publikacji nadal cieszy się dużą popularnością. Postanowiłem go odświeżyć i wykorzystać aktualne narzędzia przydatne w programowaniu PHP. Uwaga: Żeby w pełni zrozumieć ideę tego wzorca projektowego czytelnik musi mieć solidne podstawy znajomości PHP […]

Autor wpisu: batman, dodany: 15.04.2015 15:00, tagi: php

Ciekawe wieści nadeszły ze strony twórcy Laravela, Taylora Otwella. Światło dzienne ujrzał kolejny framework jego autorstwa, o nazwie Lumen. Jest to mikroframework bazujący na Laravelu.

Framework, według zapewnień autora, jest mniejszy, szybszy oraz „lżejszy”. Do kogo jest on skierowany? Dla wszystkich, którzy chcą korzystać z dobrodziejstw Laravela, ale są gotowi zamienić wygodę programowania na większą wydajność.

Pierwsze co się rzuca w oczy, to brak domyślnej obsługi fasad oraz Eloquent ORM. Zauważyłem również, że middleware oraz Service Providers zostały domyślnie wykomentowane. W przypadku środowisk również zaszła zmiana, domyślnie jest dostępne tylko jedno środowisko. Jeśli będziemy chcieli skorzystać z większej ilości środowisk, będziemy musieli odpowiednio skonfigurować Lumen.

Na pierwszy rzut oka Lumen doskonale będzie się nadawał do niewielkich serwisów dostarczających API dla innych serwisów. Niestety nic więcej na temat tego frameworka nie mogę napisać. Jak tylko będę miał okazję przygotować jakiś mikro serwis korzystający z tego frameworka, podzielę się większą ilością szczegółów. Tymczasem zachęcam was do zapoznania się z dokumentacją projektu – lumen.laravel.com.

Autor wpisu: Pyton, dodany: 10.04.2015 20:52, tagi: php

Wiele ludzi żyje w przekonaniu że Parser Error nie da się złapać. Bo niby jak? Oto bardzo prosty przepis.

Tworzymy plik np. globalErrorHandler.php a w nim:

register_shutdown_function("shutdownHandler");
function shutdownHandler()
{
    $lasterror = error_get_last();
    switch ($lasterror['type'])
    {
        case E_ERROR:
        case E_CORE_ERROR:
        case E_COMPILE_ERROR:
        case E_USER_ERROR:
        case E_RECOVERABLE_ERROR:
        case E_CORE_WARNING:
        case E_COMPILE_WARNING:
        case E_PARSE:
            $error = "[SHUTDOWN] lvl:" . $lasterror['type'] . " | msg:" . $lasterror['message'] . " | file:" . $lasterror['file'] . " | ln:" . $lasterror['line'];
            die($error);
    }
}

Obsługę błędów możemy oczywiście dowolnie modyfikować, włącznie z wysłaniem maila do siebie.

Aby to zadziałało dodajemy do php.ini do zmiennej auto_prepend_file ścieżkę bezwzględną do naszego pliku. Jeśli nie mamy dostępu bezpośrednio/pośrednio do php.ini to możemy włączyć to w .htaccess podając php_value auto_prepend_file "adres/do/pliku.php

Koniec. Od teraz mamy obsługę błedów m.in. Parser Error.

Autor wpisu: singles, dodany: 23.03.2015 08:30, tagi: internet

Całkiem niedawno puściłem takiego oto tweeta:

Jedna z odpowiedzi sugerowała, że żartuję i robię sobie przysłowiowe jaja. Haczyk w tym, że wcale nie. Pokażę Wam w jaki sposób mam zorganizowane zarządzanie pocztą – a co za tym idzie – jak system TODO oparty na mailu idealnie się w to wpasowuje.

Dla tych z Was, którzy czytali „Getting Things Done” Allena metody te nie będą pewnie nowością. Mi ta książka nie podeszła, ale podświadomych inspiracji nie wykluczam :).

Zasada #1: Rzeczy w skrzynce odbiorczej czekają na akcję.

W pewnym momencie zdałem sobie sprawę, że spora większość maili które otrzymuję wymaga jakiejś akcji:

  • faktura – płacę + drukuję/archiwizuję/wysyłam księgowej
  • pytanie o wykonanie usługi – odpowiadam/przygotowuję ofertę
  • komentarz na GitHubie – odpowiadam (pytania bez odpowiedzi to zło)
  • mail do kumpla z nowym popularnym video – odpowiadam, najczęściej jest to „widziałem” (chyba za dużo czasu spędzam na YT)
  • zaproszenie na Li/FB – akceptuję (znajomi) lub odrzucam (ludzie których nie znam/rekruterzy którzy nawet nie przeczytali profilu)
  • newsletter z pointer.io – dorzucam ciekawe artykuły do Pocketa
  • potwierdzenie nadania przesyłki – zostawiam do czasu aż do mnie dotrze (czasami zamawiam sporo rzeczy i czasami można przypomnieć sobie o jednej po miesiącu)
  • etc.

Nieistotne jest kiedy zajmiecie się danym mailem. Możecie korzystać z zasady „jeśli coś zajmuje mniej niż 5 minut, to zrób to od razu”, możecie zostawiać na potem. Ważny jest fakt, żeby leżał w skrzynce dopóki się nim nie zajmiecie.

Zasada #2: Jeśli coś nie wymaga akcji, wylatuje ze skrzynki odbiorczej.

Oraz jej rozwinięcie: mail na którego odpowiedziałeś i/lub nie wymaga od Ciebie akcji jest od razu archiwizowany/usuwany.

Ja usuwam – kosz najczęściej opróżniany jest po 30 dniach, tak więc jeśli dyskusja będzie się ciągnąć, to i tak będę miał dostęp do tego maila. Jeśli nie, to zakładam że nadawca przy następnym mailu dołączy kontekst.

Zasada #3: Do skrzynki odbiorczej trafiają także maile wychodzące.

Wyobraźcie sobie sytuację, że reklamujecie jakiś produkt wysyłając maila do sprzedawcy. Czasami można zapomnieć o tym, że sprzedawca miał nam odpisać. Jest na to prosty sposób – podczas pisania maila dodajcie siebie do BCC – tym sposobem mail trafi do skrzynki odbiorczej i nie zapomnicie. A dodatkowo dzięki temu, że przy każdym mailu widnieje data wysłania będziecie widzieć jak długo zajęła mu odpowiedź.

Jeśli długo nie dostajecie odpowiedzi, to już Wasza decyzja co zrobić z tym mailem dalej – jeśli odpuszczacie sprawę, to maila kasujecie albo nadajecie mu specjalną etykietę – patrz zasada nr #4.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Pyton, dodany: 20.03.2015 08:05, tagi: php

Witajcie

Dziś na potrzeby pewnego serwisu musiałem zbudować mechanizm generujący slug. Ponieważ nie znalazłem nic co by mi odpowiadało to postanowiłem napisać własną klasę.

Instalacja

Instalacja odbywa się przy użyciu Composera. Jeśli ktoś nie ma to odsyłam do źródła.

Wystarczy dodać do pliku composer.json:

"require": {
        "pyton/easyslug" : "~1.0"
    }

lub bezpośrednio w konsoli: composer require pyton/easyslug ~1.0

Przykłady użycia

Zakładam że macie już dołączony autoloader z Composera. Jeśli nie to znowu odsyłam do źródła

Tworzymy slug:

<?php
use EasySlug\EasySlug;

include 'vendor/autoload.php';

$easySlug = new EasySlug();

$slug = $easySlug->create('Base Slug string.');

// Wyświetla prosty slug
echo $slug->plain() . PHP_EOL;
// Base-Slug-string

// Możliwość formatowania za pomocą wyrażeń sprintf
echo $slug->format('%s.html') . PHP_EOL;
// Base-Slug-string.html

// Zmiana separatora
$easySlug->setReplacement('_');
$slug = $easySlug->create('To jest nasz String z polskimi znakami np: 󟯌ćł');
echo $slug->plain() . PHP_EOL;
// To_jest_nasz_String_z_polskimi_znakami_np_ozZScl

echo $slug->format('%s.html') . PHP_EOL;
// To_jest_nasz_String_z_polskimi_znakami_np_ozZScl.html

Opis

Za pomocą metody create('string') tworzymy slug wewątrz obiektu.

Do wyświetlania slug służą metody: – plain() – Wyświetla wygenerowany slug – format('pattern', array('arg1', 'arg')) – wyświetla string formatowany przy użyciu sprintf. pattern oraz array('arg1', 'arg') jest opcjonalna. Przykłady:


$slug->format('%s');
$slug->format('%s-%d.html', array(12));
$slug->format('%s_%s_%s.html', array('prefix', 'postfix'));

Podsumowanie

EasySlug to prosta paczka która wygeneruje nam podstawowy slug, z możliwością sformatowania go w dowolny sposób.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.