Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: nospor, dodany: 29.08.2016 14:47, tagi: php

Kilka prostych hooks, które przydadzą się dla osób pracujących z git/gitlab oraz bugzilla i redmine. Dzięki nim można zautomatyzować trochę nasze procesy commit oraz push. A co najważniejsze: wszystkie te hooks możemy napisać w php.

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

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

Autor wpisu: JoShiMa, dodany: 15.08.2016 00:30, tagi: framework

Chyba nikomu kto sięga po framework w celu stworzenia aplikacji webowej nie trzeba tłumaczyć czym jest uwierzytelnienie zwane potocznie logowaniem i po co się je stosuje w aplikacjach webowych. Prawdę mówiąc jest to pierwsza rzecz za jaką się zabieram kiedy mam już zaprojektowaną przynajmniej zgrubnie aplikację. W Yii1 sprawa jest prosta, istnieje klasa tożsamości z […]

Autor wpisu: JoShiMa, dodany: 14.08.2016 18:19, tagi: framework

Ostatnio moim ulubionym i jedynym frameworkiem, którego używam był Yii 1. Ktoś niedawno w komentarzach zapytał dlaczego nowy projekt nie powstał w Yii 2. No własnie. Dlaczego? Po pierwsze macierzyństwo spowodowało, że na jakiś czas zwolniłam znacznie, jeśli chodzi o programowanie. Po drugie pracowałam w projektach w których nikt nie zawracał sobie głowy nowymi rozwiązaniami […]

Autor wpisu: batman, dodany: 10.08.2016 09:00, tagi: php

Pracowałem ostatnio nad projektem, który korzystał z kiepsko napisanej biblioteki, będącej głównym elementem aplikacji. Problem jaki napotkałem polegał na konieczności podmiany ustawionej na sztywno wartości jednej z właściwości zadeklarowanej jako prywatna. Niestety dziedziczenie i podmiana obiektu nie wchodziła w grę (kiepsko zaprojektowana aplikacja). Na szybkiego napisałem więc prostą klasę, dzięki której możliwa była zmiana tej wartości. Wiem, koła nie odkryłem, ale ten kawałek kodu zaoszczędził mi sporo czasu. Może i komuś z was również się przyda. [[ This is a content summary only. Visit my website for full links, other content, and more! ]]

Autor wpisu: JoShiMa, dodany: 09.08.2016 23:55, tagi: framework, skrypty

Dla jednej z moich klientek tworzyłam niedawno prostą stronę internetową dzięki której będzie ona mogła prezentować oferowane przez nią stroje i dodatki. Nieodzownym elementem tej strony był więc panel administracyjny umożliwiający wygodne i intuicyjne dodawanie zdjęć. Założyłam również, że osoba obsługująca serwis nie musi dbać o to by przed wgraniem zdjęcia zmniejszać je do odpowiednich […]

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...

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