Zobacz nasz kanał na YouTube
Programista PHP
Miejsce pracy: Wrocław
Nr Ref.: PR-WRO-PHP-2013/06
<?php namespace PGS; abstract class Information { protected $description = 'PGS Software to polska spółka informatyczna notowana na giełdzie. Jesteśmy jednym z największych polskich eksporterów branży IT. W naszych biurach we Wrocławiu i Rzeszowie zatrudniamy ponad 200 programistów i testerów. Tworzymy zaawansowane oprogramowanie dla klientów z Europy Zachodniej i USA.'; } class PHPOffer extends \PGS\Information { private $reference = array( 'work-place' => 'Wrocław', 'number' => 'PR-WRO-PHP-2013/06', ); protected $workDescription = array( 'Komplet zadań od projektowania do implementacji aplikacji PHP', 'Komunikacja w języku angielskim', 'Praca w metodologiach Agile/Scrum' ); protected $requirements = array( 'kilkuletnie doświadczenie w programowaniu w języku PHP', 'bardzo dobra znajomości JavaScript i biblioteki jQuery', 'zorientowanie obiektowege w programowaniu', 'dobra znajomość wzorców projektowych np. MVC', 'doświadczenie w pracy z relacyjnymi bazami danych: MySQL i/lub PostgreSQL', 'dobra znajomość języka angielskiego' ); protected $additionalSkills = array( 'znajomość innych języków programowania (Python lub Java)', 'doświadczenie z Backbone lub Angular' ); protected $weOffer = array( 'stabilne zatrudnienie', 'praca w międzynarodowych zespołach', 'rozwój na ścieżce eksperckiej lub managerskiej', 'rzeczywisty wpływ na wybór technologii projektu', 'możliwość zmiany projektu', 'finansowanie certyfikacji technologicznej', 'nieformalną atmosferę w naszym nowoczesnym biurze', 'elastyczne godziny pracy', 'prywatną opiekę medyczną', 'kartę multisport', 'kursy języka angielskiego i niemieckiego', 'drugie śniadanie i owoce', 'pomoc w relokacji', 'wyjazdy i imprezy integracyjne' ); protected $footer = 'Wyślij CV na adres praca.wroclaw@pgs-soft.com podając numer referencyjny oferty w tytule wiadomości: {reference-number}. Do swojego CV dołącz następującą klauzulę: "Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych przy realizacji procesu rekrutacji zgodnie z Ustawą z dn. 29.08.97 o Ochronie Danych Osobowych (DZ.U. nr 133, poz. 883)"'; protected $listDecorator; protected $lineDecorator; public function __construct(\PGS\DecoratorFactoryInterface $decoratorManager) { $this->listDecorator = $decoratorManager->getListDecorator(); $this->lineDecorator = $decoratorManager->getNewLineDecorator(); $this->footer = str_replace('{reference-number}', $this->reference['number'], $this->footer); } public function __toString() { $offer = $this->lineDecorator->decorate($this->description) . $this->lineDecorator->decorate('') . 'Programista PHP' . $this->listDecorator->decorate($this->reference) . 'Opis stanowiska:' . $this->listDecorator->decorate($this->workDescription) . 'Wymagania:' . $this->listDecorator->decorate($this->requirements) . 'Mile widziane:' . $this->listDecorator->decorate($this->additionalSkills) . 'Oferujemy:' . $this->listDecorator->decorate($this->weOffer) . $this->lineDecorator->decorate('') . $this->lineDecorator->decorate($this->footer); return $offer; } } interface DecoratorFactoryInterface { public function getListDecorator(); public function getNewLineDecorator(); } class DecoratorPrototype implements \PGS\DecoratorFactoryInterface { protected $decorators = array(); public function getListDecorator() { return $this->decorators['list']; } public function getNewLineDecorator() { return $this->decorators['newLine']; } } class HtmlDecoratorPrototype extends \PGS\DecoratorPrototype { public function __construct() { $this->decorators = array( 'list' => new HtmlListDecorator(), 'newLine' => new HtmlNewLineDecorator(), ); } } interface Decorator { public function decorate($item); } class HtmlListDecorator implements \PGS\Decorator { protected function getListItem($reduced, $value) { return $reduced . '<li>' . htmlspecialchars($value, ENT_COMPAT, 'UTF-8') . ',</li>'; } public function decorate($array) { return sprintf('<ul>%s</ul>', array_reduce($array, array($this, 'getListItem'))); } } class HtmlNewLineDecorator implements \PGS\Decorator { public function decorate($item) { return $item . '<br />'; } } echo new \PGS\PHPOffer(new \PGS\HtmlDecoratorPrototype());