Autor wpisu: Pyton, dodany: 20.02.2015 08:00, tagi: php
Wraz z wydaniem Laravel 5 zniknęła z artisana jedna przydatna komenda: workbench. To dzięki niej w 4 mogliśmy bardzo łatwo tworzyć paczki. A jak tego dokonać w wersji 5? Pokażę Wam dość prosty sposób.
Przygotowania
Wpierw musimy sobie pobrać najnowszą wersję Laravela:
composer create-project laravel/laravel forPackages
Gdy będziemy mieli nasze gotowe podstawowe środowisko pobieramy paczkę Workbench.
W tym celu do pliku composer.json
dodajemy:
"illuminate/workbench": "dev-master"
i robimy
composer update
Na końcu musimy utworzyć plik config/workbench.php
<?php
return [
/*
|--------------------------------------------------------------------------
| Workbench Author Name
|--------------------------------------------------------------------------
|
| When you create new packages via the Artisan "workbench" command your
| name is needed to generate the composer.json file for your package.
| You may specify it now so it is used for all of your workbenches.
|
*/
'name' => 'Imie Nazwisko',
/*
|--------------------------------------------------------------------------
| Workbench Author E-Mail Address
|--------------------------------------------------------------------------
|
| Like the option above, your e-mail address is used when generating new
| workbench packages. The e-mail is placed in your composer.json file
| automatically after the package is created by the workbench tool.
|
*/
'email' => 'adres@emai.pl',
];
Tworzenie fundamentu
Gdy mamy już potrzebne narzędzia tworzymy szkielet dla naszej paczki. W konsoli:
php artisan workbench Pyton/TestPackage
Przeważnie vendor
to login z GitHub lub czegoś innego a package
to nazwa naszej paczki.
Utworzy nam się katalog /workbench
workbench/
└── pyton
└── test-package
├── composer.json
├── composer.lock
├── phpunit.xml
├── src
│ └── Pyton
│ └── TestPackage
│ └── TestPackageServiceProvider.php
├── tests
└── vendor
Przedostatnim krokiem jest edycja pliku composer.json
w katalogu główny Laravel (nie tego w paczce)
i dodanie do sekcj psr-4
:
Autor wpisu: matipl, dodany: 10.02.2015 11:45, tagi: php
Serwis Trojmiasto.pl to regionalny portal informacyjny, z własną redakcją która nie powiela niusów z Wyborczej. I to sobie cenię. Ale wymyślili coś tragicznego IMHO.
Niestety ktoś chciał być zabawny, albo ekipa serwisu bardzo poszukuje pracowników i wymyślili powyższą formę reklamy prezentując na stronie głównej poniższy exception:
PDOException: SQLSTATE[28000] [1045] Access denied for user 'phpdeveloper' (using password: 'needed.now') in /html/source/4/details.inc.php on line 75 1. 0.0004 130048 __construct ( ) ../bootstrap.inc.php:27
Ekipa Trojmiasto.pl uważa, że plucie czymś takim czytelnikom to dobry pomysł. Jasne. Nie jest to dobre rozwiązanie, ani dla Czytelników ani dla potencjalnych kandydatów. Dlaczego to co widać powyżej jest kiepskie z punktu widzenia programisty PHP?
- Włączony debugger na produkcji to jedno z najgorszych rozwiązań jakie można zastosować. Dochodzimy do wniosku, że testują wszystko jak wlezie na produkcji i nie znają obecnych rozwiązań do monitorowania produkcji.
- Kod serwisu pachnie kodem proceduralnym sprzed 10 lat gdy nie oddzielało się logiki biznesowej od kwestii widoku. Dla człowieka na polskich studiach może jest to okej, albo jest sprzeczne z obecnymi trendami w PHP.
- Na podobny archaizm wskazują nazwy plików .inc.php, gdzie żyjemy w czasach wzorców projektowych, SOLID, etc.
Że nie jest to faktycznie rzucony błąd przez PHP dochodzimy do wniosku, dopiero gdy pomyślimy że jesteśmy Frontend Developerem i zajrzymy do kodu HTML (Backend Developera to nie interesuje):
w postaci tekstowej prezentuje się następująco:
<!-- phpdeveloper? join us! mail('warningadv@trojmiasto.pl', 'phpdeveloper', $cv.$short_desc); --></pre> <table id="warningadv" dir="ltr" border="1" cellspacing="0"> <tbody> <tr> <th colspan="6" align="left" bgcolor="#dddddd"><span style="background-color: #cc0000; color: #fce94f; font-size: large;">( ! )</span> PDOException: SQLSTATE[28000] [1045] Access denied for user 'phpdeveloper' (using password: 'needed.now') in /html/source/4/details.inc.php on line <i>75</i></th> </tr> <tr> <td align="center" bgcolor="#dddddd">1</td> <td align="center" bgcolor="#eeeeec">0.0004</td> <td align="right" bgcolor="#eeeeec">130048</td> <td bgcolor="#eeeeec">__construct ( )</td> <td title="common/bootstrap.inc.php" bgcolor="#eeeeec">../bootstrap.inc.php<b>:</b>27</td> <td align="right" bgcolor="#eeeeec"><button title="zamknij" type="button">x</button></td> </tr> </tbody> </table> <pre> <script type="text/javascript">// <![CDATA[ function warningadv() { document.cookie = 'warningadv=1000;path=/;domain=trojmiasto.pl;expires=Sun, 1 Mar 2015 12:00:00 UTC;'; document.getElementById('warningadv').style.display = 'none'; document.getElementById('warningadv').hidden = true; } // ]]></script>
Technologie frontendowe są dla mnie nieco odległe, ale ten kod również bardziej odstrasza niż przyciąga. Obecnie tak się nie programuje, ani na frontendzie, ani backendzie. W dzisiejszych aplikacjach wszystko jest oddzielone od siebie, zbudowane z klocków… Pozostaje podziękować, że człowiek patrząc na ten kod i debugger mógł się poczuć jak 10 lat temu
Autor wpisu: Łukasz Socha, dodany: 03.02.2015 14:26, tagi: php
Autor wpisu: Kamil Adryjanek, dodany: 02.02.2015 22:22, tagi: php, symfony2
Today I want to introduce to you great elastic data store Crate.io that I was working with lately. CRATE
is a new way of building scalable applications: “Crate takes care of synchronization, sharding, scaling, and replication even for mammoth data sets.” Also I’m going to show how easily we can integrate it with PHP / Symfony2 framework – if we can call setting new DBAL driver as integration.
Post Using CRATE with Symfony2 pojawił się poraz pierwszy w Kamil Adryjanek.