Autor wpisu: Michał Janicki, dodany: 17.08.2016 15:37, tagi: php
Piąty i ostatni odcinek serii postów poświęconych Ruckusing Migration zostanie poświęcony tworzeniu własnych zadań. Przez zadania rozumiem polecenia jakie możemy wpisywać w CLI i dzięki temu wykonać jakieś niestandardowe działania (np. db:migrate, db:generate etc).
Jak zawsze zachęcam do zapoznania się z poprzednimi postami poświęconymi tej bibliotece. Część pierwszą można znaleźć tutaj, część drugą tutaj, trzecią tutaj a czwartą tutaj.
Informacje podstawowe
Zadania znajdują się w katalogu Task (np. vendor/ruckusing/ruckusing-migrations/lib/Task). Domyślnie w tym katalogu znajdują się jeszcze dwa inne katalogi Db i Hello. W katalogu Db znajdują się zadania, które korzystając z tej biblioteki będziesz używał na codzień czyli db:migrate, db:generate etc. Z kolei w katalogu Hello znajduje się zadanie o nazwie World. Jak nie trudno się domyśleć jest to swego rodzaju przykład. Można to zadanie uruchomić z poziomu CLI wpisując hello:world.
Lokalizacje „customowych” zadań można rzecz jasna zmienić. Wystarczy w pliku konfiguracyjnym dodają klucz „tasks_dir” a jako wartość adres katalogu.
Tworzenie własnych zadań
Pliki z klasami zadań należy umieścić w jakimś katalogu „przestrzeni nazw”, o którym wspomniałem w poprzednim akapicie. Nie ma możliwości stworzenia „luźnego” zadania bez wrzucania go jakąkolwiek przestrzeń nazw ponieważ podczas próby uruchomienia takiego zadania zgłoszony zostanie wyjątek o nieprawidłowym formacie lub braku zadania.
Plik zadania musi mieć taką samą nazwę jak samo zadanie, a klasa musi mieć nazwę wg następującego schematu Task_{przestrzeń_nazw}_{nazwa_zadania}. Jeśli spróbujecie uruchomić taką pustą klasę zadania dostaniemy info że nasza klasa nie interfejsu Ruckusing_Task_Interface. Po dodaniu tego interfejsu do klasy i próbie uruchomienia dostaniemy informację, że wystąpił Fatal Error. Pojawił się on dlatego, że interfejs, który zaimplementowaliśmy wymaga aby nasza klasa posiadała definicję dwóch funkcji setMigrationsDirectory i setAdapter. Nie ma sensu jednak pisać ich od podstaw tylko sprawić aby klasa naszego zadania rozszerzyła klasę Ruckusing_Task_Base. Ta klasa posiada już definicję tych dwóch brakujących funkcji. Tak więc po dopisaniu odpowiedniego kodu i uruchomieniu zadania powiliśmy przestać otrzymywać informacje o błędach. Nic bardziej mylnego
Autor wpisu: JoShiMa, dodany: 15.08.2016 00:30, tagi: framework
Autor wpisu: JoShiMa, dodany: 14.08.2016 18:19, tagi: framework
Autor wpisu: batman, dodany: 10.08.2016 09:00, tagi: php
Autor wpisu: JoShiMa, dodany: 09.08.2016 23:55, tagi: framework, skrypty
Autor wpisu: Pyton, dodany: 02.08.2016 02:00, tagi: php
Wielu developerów boryka się z deployem swojej aplikacji na serwery produkcyjne.
Jedni wgrywają wszystkie pliki przez FTP, inni po SSH, a Ci bardziej zaawansowani robią git pull
.
Do tego zazwyczaj dochodzi uruchomienie różnych procesów począwszy od instalacji pakietów Composer, aż po minifikację plików CSS i JS.
Problem rodzi się gdy nasza strona przestaje działać, odwiedzający się denerwują a my w pocie czoła i pośpiechu próbujemy dojść co się zepsuło.
Jeśli więc Deploy jest Twoim koszmarem lub chciałbyś aby to było jak najprostsze to czytaj dalej...