Raph's world

Rafal's Grzegorek blog

Category: Programowanie (Page 1 of 2)

Rejestracja wielu klas w Symfony jako serwis na podstawie szablonu nazw

Problem

Mam projekt w Symfony, który ma kilka klas komend („Command”) będących parserami  (nie ma znaczenia czego w kontekście tego tekstu).  W „AppBundle/Command” są więc klasy wg. schematu nazwy [Nazwa]ParseCommand.php.
Potrzebuję rejestrować te klasy jako serwisy. Do tej pory robiłem to w „services.yml”, np.:

Docker na zdalnym hoście – integracja PHPUnit i XDebug z PHPStorm

Zamarzyłem sobie, żeby mieć serwer z Dockerem gdzieś tam (czyli nie na moim laptopie) i móc wygodnie na nim pracować poprzez integrację z PHPStorm. Przedstawiam zatem mój proof of concept takiej konfiguracji.

Serwer gdzieś tam

Na potrzeby testu wykupiłem sobie VPS w Znanej Firmie Hostingowej za całe 15 zł.… Więcej

Bamboo – moja przeprawa z docker-compose i PHPUnit

Od dłuższego czasu interesowało mnie Continuous Integration w wykonaniu Attlasiana i jego serwera Bamboo.  Do tego doszedł popularny ostatnio Docker, który wydawał mi się bardzo dobrym rozwiązaniem do szybkiego stawiania środowiska potrzebnego do zbudowania aplikacji.

Postanowiłem zatem zrobić prosty proof of concept – żeby zobaczyć jak to wygląda w praktyce.… Więcej

Debugowanie CLI w Symfony

Post nie będzie długi (sorry Bobiko :P), bo ktoś to bardzo kompetentnie opisał, a, że próbuję walczyć ze swoim nawykiem debugowania przez „echo”, warto wspomnieć o bardzo pomocnym artykule opisującym temat debugowania przy użycia XDebug i PHPStorm w Symfony:

Connecting Xdebug to PhpStorm

Wspomniałem tylko o CLI, bo aktualnie tylko tego potrzebowałem, ale sam artykuł opisuje dużo więcej scenariuszy.… Więcej

PhantomJS – pomocny duch przy parsowaniu

girl

Fakty

Fakt: nie wszystkie serwisy udostępniają publiczne API do pobierania danych, mimo, że te dane są publiczne.

Fakt 2: phpowy DomDocument::loadHTML() to może być za mało przy obecnym trendzie wybajerzonych frontendów, wszechobecnego JS i AJAXa.

Problem i rozwiązanie

Sam stanąłem przed powyższym problemem, gdy pisząc parser w PHP, okazało się, że trzeba coś wywołać na frontendzie.… Więcej

CakePHP 3 ORM – with rollup

Nowym ORM Cake’a 3 jest obiecujący – w końcu wszystko przestało być tabelą, ale idealnie nie jest – dodanie „WITH ROLLUP” do grupowania wymaga hakowania. Trzeba zmusić ich parser wyrażeń, żeby nie brał dodanego wyrażenia w odwrotne cudzysłowy:

Można jednak bez hakowania…

Do dodania „WITH ROLLUP” można użyć:

 … Więcej

Jak zostać ninja

Nie od dziś wiadomo, że skróty klawiszowe usprawniają wiele rzeczy. Nie zawsze jednak jest je łatwo zapamiętać – zwłaszcza, jeśli używamy wielu programów.

Jakiś czas temu trafiłem na projekt, który podchodzi do tematu jednocześnie w mało szablonowy, ale skuteczny (jak bardzo skuteczny – okaże się dla mnie za jakiś czas) sposób.… Więcej

session.referer_check w CakePHP 2.x

Opcja ta pozwala na sprawdzanie z jakiego hosta jest dany request i jeśli host się nie zgadza z aktualnym, unieważnia sesję. Starszy Cake wykorzystywał to ustawienie wiążąc fakt czy będzie używana z opcją „Security.level”, co nie zawsze było poręczne – zwłaszcza jeśli aplikacja korzystała z przekierowań na inne serwery, które potem wracały do nas.… Więcej

preg_replace i zawiłości znaku nowej linii

Wczoraj miałem do podmiany część ciągu cyfr z dłuższego tekstu podobnego do tego, którego fragment poniżej, na inne znaki:

[plain]
Jakistekst
1212121212121212
Cos: cos/cos
[/plain]

Zadanie wydawało się bardzo proste. Ciąg cyfr był zawsze w jednej linii. Chciałem użyć takiego oto kodu:

FindBy i recursive

W modelu Cake jest metoda findBy<fieldName>, która pozwala pobierać dane z bazy na podstawie atrybutu „fieldName”. Prawie wcale nie używałem tej metody, ale okazała się ona dzisiaj pomocna. Okazało się też, że metoda działa z parametrem „recursvie=1”, co w moim przypadku niepotrzebnie pobierało dane z powiązanego modelu.… Więcej

Page 1 of 2

Powered by WordPress & Theme by Anders Norén