Autor wpisu: Łukasz Socha, dodany: 17.04.2015 10:57, tagi: php, mvc
Autor wpisu: Łukasz Socha, dodany: 16.04.2015 13:17, tagi: php, mvc
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:
Look mom, I just made myself a TODO "system". pic.twitter.com/Tjm6J2Mwhe
— Radek Benkel (@singlespl) December 1, 2014
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.
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.