Ze dwa lata temu jak pisałem #wykoevent wymyśliłem sobie, że oprę się na #zend #zendframework żeby się go nauczyć i w przyszłości już sobie w nim #!$%@?ć elegancko jak będę musiał coś napisać w php (na co dzień programuję w .NET). W końcu nadszedł dzień, w którym zdobyta wcześniej wiedza miała zaowocować. Od 3 godzin instaluję nową wersję przy użyciu jakichś tooli, o których istnieniu nie miałem pojęcia, zapoznaję się z nową
Cześć mireczki, męczy mnie jeden temat do wczoraj, tak jak zawsze sobie radzę z tego typu tematai to przyciąłem się

Próbuję znaleźć bezpośrednie źródło (ściągnąć) plik mp4 z playera JW na stronie TVS.pl, dokładnie: http://www.tvs.pl/silesiainformacje/silesia-informacje-23-04-2015

W źródle jest tam w sekcji playera:

jwplayer("tvs-video-player-553c69e3eb661").setup({"flashplayer":"\/mediaplayer-5.7-licensed\/player.swf","autostart":true,"logo.hide":false,"logo.position":"left top","width":"100%","height":"100%","stretching":"uniform","repeat":"list","skin":"\/mediaplayer-5.3-licensed\/skin2.zip","playlist":[{"provider":"rtmp","file":"Silesia_Informacje\/2015\/04\/2304.mp4","streamer":"rtmp:\/\/streaming.tvs.pl:1935\/vod","image":"\/media\/thumbnail\/video\/hd\/3452.jpg"}],"logo.file":"\/media\/thumbnail\/application-video-age\/min\/135.png","plugins":{"ova-jw":{"ads":{"showOverlayCloseButton":true,"filterOnLinearAdMimeTypes":false,"notice":{"message":"Koniec reklamy za: _countdown_ ","type":"countdown"},"skipAd":{"enabled":false},"displayCompanions":false,"schedule":[{"tag":"http:\/\/ad.adview.pl\/ad\/GetReklamyMultimediaVast?dir=\/tvs_ads_P\/\u0026jsp=30\u0026dx=-31440\u0026adType=OVERLAY\u0026quantity=1\u0026t=[timestamp]","startTime":"00:00:10","duration":"00:00:30"},{"position":"pre-roll","zone":"2","applyToParts":[0],"tag":"http:\/\/ad.adview.pl\/ad\/GetReklamyMultimediaVast?dir=\/tvs_ads_P\/\u0026jsp=30\u0026dx=-31440\u0026adType=PREROLL\u0026quantity=1\u0026t=[timestamp]"}]}}}});
i jest file:

"file":"Silesia_Informacje\/2015\/04\/2304.mp4"
Ale gdzie on leży?

Działający kawałek dłuższej ścieżki:

[http://www.tvs.pl/media/thumbnail/video/hd/3452.jpg](http://www.tvs.pl/media/thumbnail/video/hd/3452.jpg)
Czasem przy pewnych requestach udawało mi się zobaczyć kilka wysypów ZENDa,
Po spędzeniu całego dnia nad walidacją jednego formularza (dwa fieldsety, 6 pól select + przycisk submit), który w tym tylko był nietypowy, że wartości dostępne w następnych polach zależą od wartości w polach poprzednich dochodzę do wniosku:
#zendframework ma "learning curve" ustawioną pionowo. Po 3 godzinach wertowania googli znalazłem opcję disableinarrayvalidator, które wyłączyło mi "magię" i w końcu zaczęło działać.
Shame on you, #zend
#php ##!$%@?
@singollo: cytat odpowiedni chyba :D "Mike Mx Kowalski: Zend\Form to najbardziej poroniony komponent ZF2. Sami developerzy to przyznali na IRCu. Obiecali w ZF3 gruntowną przebudowę tego bałaganu. Ps. mam nadzieję, że używasz w widoku ->prepare() na formularzu? Bo często w wyniku braku tego są problemy."
Dokumentacja #zendframework ssie. Dziwne, że przy tak dobrej dokumentacji #php "oficjalny" framework ma taką kiepską. Część problemu da się rozgryźć czytając kod źródłowy, ale nie z wszystkim jest tak łatwo. W ZF1 jeszcze było jako-tako, ale ZF2 to zupełna tragedia.

Mam takie dwa problemy z Zend/Db:

1. Zapytanie ma być mniej więcej takie:

SELECT * FROM TableA a JOIN TableB b ON a.id = b.idA AND b.type = 'current'
Problem jest z
@ghost1511: no tak, nie chodzi mi \Exception\InvalidArgumentException, ale raczej o Cms\Exception\InvalidArgumentException

Z tym, że z tego Cms\Exception\ mogą korzystać klasy np. Cms\Service
@singollo: Tak naprawdę to tylko konwencja. Możesz to tak zrobić. Ale lepiej zrobić coś takiego:

Cms\Sevice\InvalidArgumentException. Ponieważ będziesz rzucał dokładniejszym wyjątkiem. Wiesz skąd on pochodzi. Możesz go dowolnie rozbudować. Kiedy używasz wspólnego wyjątku dla wielu klas/przestrzeni każda zmiana niesie za sobą ryzyko, że coś przestanie działać.

Dodatkowo masz możliwość łapania różnych wyjątków i różnego reagowania na nie.

try{

...

}

catch( Cms\Service\InvalidArgumentException $exc){

//poważny błąd należy zgłosić administratorowi, dodać do loga
#webdev #zendframework #zend #php

Znam PHP całkiem całkiem, tworzę witryny w oparciu o MVC itd. Od kilku dni ogarniam sobie ZF2 i idzie mi to dość sprawnie, tylko mam kilka rozkmin:

1) Na przykład moduł autoryzacji (rejestracja, logowanie, przypominanie hasła itd), lepiej stworzyć sobie swój własny, który znam na wylot i potem stosować go w kolejnych projektach? Czy znaleźć sobie jakiś gotowy na githubie, który pasuje mi najlepiej, doskonale go poznać i
@Zaszczyk: ad. 2 - DirectAdmin zezwala na ustawienie DocumentRoot na inny katalog niż

public_html
. Ale jeśli z jakiegoś powodu masz tą opcję zablokowaną, wrzucasz aplikację poziom wyżej, a zawartość katalogu

public
przenosisz do

public_html
. Powinno zadziałać od kopa, chyba że w jakiś sposób w kodzie aplikacji się do niego odnosisz, wtedy będzie potrzebna podmiana ścieżek w kodzie aplikacji.
Czy znaleźć sobie jakiś gotowy na githubie, który pasuje mi najlepiej, doskonale go poznać i z niego korzystać?


@Zaszczyk: zanim zaczniesz szukać na githubie, zauważ, że istnieje Zend\Authentication :)
pewnie tak, ale jakby ktoś dzisiaj potrzebował to będzie wiedział. Czasami ludzie nie weryfikują opinii/danych z Internetu, które już są nieaktualne, więc czasami warto uzupełniać stare wątki.
Takie pytanie koncepcyjne #zendframework 2

Mam, załóżmy, dwa moduły - "Application" (frontend) i "Cms" (backend). Załóżmy, że jest jakaś informacja (nazwijmy ją Request), którą tworzy klient, a następnie przetwarza administrator serwisu. W sumie normalna, codzienna sytuacja.

Powiedzmy, że klient może tworzy taki obiekt Request, a administrator listuje wszystkie obiekty Request, jakie w systemie istnieją.

Do obsługi powyższego utworzyłem sobie klasy

\Application\Model\Request
i

\Application\Model\Table\RequestTable
. Problem w tym, że te klasy tak naprawdę
@singollo: Ja zawsze robię sobie dodatkowy katalog library w nim podkatalog o nazwie związanej z tym co projekt np. MyLibrary. Rejestruję tę przestrzeń nazw i jak coś nie należy ani do jednego modułu ani do drugiego to umieszczam to właśnie tam i później:

new \MyLibrary\Model\Request()

Pozwala to zachować pewną separacje i przejrzystość. Wiem że w module znajdują się tylko pliki bezpośrednio powiązane z modułem.
@singollo: Ale to nie ma być kompatybilne z DateTime, tylko z projektami opartymi na wcześniejszych wersjach ZF1. ZF2 to już zupełnie nowy framework i tam z tego zrezygnowano, skoro od początku już był dostępny DateTime.
Czy identyfikator przez klucz obcy innej opcji jest dostępny tylko w #doctrine wersji 2.1?

Identity through foreign Entities


Identity through foreign entities is only supported with Doctrine 2.1

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html#identity-through-foreign-entities

Potrzebuję utworzyć klucz złożony z dwóch atrybutów gdzie jeden jest kluczem obcym z innej tabeli. I wg dokumentacji można, ale cały czas dostaję jakieś dziwne błędy.

#doctrine #php #webdev #zendframework
Obśmiałem się jak norka. I zaraz zacznę jak norka gryźć. Ludzie często narzekają na #php, ale ja dopiero dzisiaj natknąłem się na zaskakujące działanie...

Aplikacja #zendframework 1, klasa Bootstrap, mam taki kod:

protected function _initRouter()

{

$router = Zend_Controller_Front::getInstance()->getRouter();

// var_dump($router);

}

W tej postaci domyślny routing działa. Ale jeśli odkomentuję linijkę z

var_dump($router)
- routing przestaje działać. Ma ktoś jakiś pomysł dlaczego?

Druga sprawa: chcę utworzyć specjalny routing dla 3
Hej!

Na początku- dla zainteresowanych programistów tworzę tag #rrit pod którym będę publikował oferty pracy na terenie całej Europy Środkowo-Wschodniej. Zachęcam do obserwowania, czytając oferty nic nie tracicie, zyskujecie natomiast informacje o rynku pracy IT oraz być może sami znajdziecie nową robotę.

Jeżeli będzie duży odzew obiecuję publikować notki jak zachowywać się na rozmowach kwalifikacyjnych, jak negocjować czy też na co zwracają uwagę pracodawcy. Ostatnie uwagi wydają się szczególnie przydatne dla technicznych,
Network and Systems Administrator


Gdzie: Wrocław/W-wa


Płaca:do 13,000 brutto

Wymagania: zdolność do podróżowania od 5-15% czasu pracy, znajomość shell scriptingu, Ruby lub Pythona, znajomość Linuxa i swoboda w posługiwaniu się "command line", znajomość TCP/IP stack oraz modelu ISO/OSI. Do tego standardowo angielski na poziomie komunikatywnym.


Dodatkowe atuty:


Dogłębna znajomość jednej z wymienionych usług: RADIUS, DHCP, DNS, monitoring systems, Samba, mail, LDAP


czy też technologii: IPSEC, VPN, routing, firewalling, IPv6


lub doświadczenie w
@adrael: nie no, argumenty by się znalazły ale chyba sam przyznasz, że codzienna postawa "someone is wrong on the internet" jest męcząco-nużąca, zaczynanie flejmów ciagle od nowa jest męczące więc zostaje co najwyżej śmieszkowanie ;) ale fakt: mało kto chce robic w zendzie, firmy mają problem w szukaniu zendowców, a już zf1 to zupełnie...