PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (98): « 1 2 3 4 [5] 6 7 8 9 ... » В конец

> Найдено сообщений: 1465
teddy Отправлено: 25 Апреля, 2015 - 16:29:52 • Тема: Сдал экзамен по Zend Framework 2 • Форум: Прочее

Ответов: 0
Просмотров: 23
Всем привет! Возможно некоторые постояльцы форума помнят, что в Марте прошлого года я проходил тестирование по PHP, но решил не останавливаться на достигнутом и на этот раз решил пройти тестирование по Zend Framework 2. Решил и прошел Улыбка В данной заметке я расскажу о Zend сертификациях в целом но больше всего уделю внимание тестированию по Zend Framework 2. Я не буду описывать незначительные мелочи потому что данный пост и без этого получится большим. Если у кого либо возникнут вопросы, пишите тут, я постараюсь на них ответить.

Общее представление о Zend сертификациях:
Если кто не в курсе, компания Zend (разработчик PHP, Zend Framework) проводит сертификацию по PHP и Zend Framework.
Человек, который сдал один из этих экзаменов(независимо от того, по PHP или ZF), получает статус Zend Certified Engineer(ZCE).

Для того что бы было понятно какое/какие именно экзамены сдал разработчик, ZCE имеют уточняющие статусы(можно иметь сразу оба статуса):

1. Те ZCE, которые успешно сдали экзамен по PHP, имеют уточняющий статус: Zend Certified PHP Engineer
2. Те ZCE, которые успешно сдали экзамен по ZF2, имеют уточняющий статус: Zend Framework 2 Certified Architect

Как вообще можно попасть на Zend экзамен?
Процесс регистрации включает в себя заполнение специальной анкеты(заявка на экзамен) и покупку ваучера цена которого на данный момент составляет 195$.
Пройти процедуру регистрации можно на сайте www[dot]pearsonvue[dot]com или в самом тест центре.
Тест-центр для конкретной страны/города можно поискать тут:
http://www[dot]pearsonvue[dot]com/servle[dot][dot][dot]ster&cid=346

Экзамен проводится на специальном компьютере где запущена программа для тестирования на весь экран. Нет возможности пользоваться интернетом, читать доки, гуглить и т.п, поэтому нужно быть готовым к сдаче "из коробки".

Экзамены проводятся на Английском языке. Оба включают в себя по 70 вопросов, для ответа на которые предоставляется 90 минут(для каждого экзамена по 90 минутУлыбка).
В ходе экзаменов вопросы можно пропускать и возвращаться к ним позже.
Ответы на вопросы могут быть трех типов:
1. Выбор одного ответа из предоставленного списка возможных ответов
2. Выбор одновременно 1-3 правильных ответов
3. Нужно ввести ответ самостоятельно с клавиатуры в специальный инпут

Что же представляет из себя тестирование по ZF2? Поехали!
Информация о темах, которые встречаются на экзамене находится по адресу: http://www[dot]zend[dot]com/en/services/[dot][dot][dot]tion/framework-2 (темы описаны после заголовка Exam Topics). Как говорил выше, 70 вопросов по этим темам и 90 минут времени на ответы.

Не доверяйте "облегчающим жизнь источникам"!!!
Перед экзаменом я искал заметки типа той, которую сейчас пишу сам для получения как можно больше информации о тестировании по ZF2.
Наткнулся на пост, где один из сдавших говорил, что не было вопросов по веб службам. Судя по всему, вопросы выпадают рандомно, и мне, похоже, повезло меньше чем ему. Как раз таки были вопросы и по SOAP/WSDL, XmlRpc. Мораль: если Вы собираетесь сдавать экзамен, не рассчитывайте на то, что "эту тему я не буду изучать, потому что парню из блога она не попалась". К счастью, я не повелся на это и изучил все темы максимально хорошо как только смог.

А не перегибаете ли вы, товарисч?!
Некоторые вопросы показались мне слишком "придирчивыми". Встречались вопросы, где нужно было быть в курсе, как программно реализована та или иная фича фреймворка.
Думаю это перебор. В большинстве случаев разработчикам, которые используют фреймворк, скорее всего чихать, как его компоненты устроены на уровне ядра и какие патерны использовались для их реализации.

Так же были вопросы, где нужно было знать сигнатуры интерфейсов фреймворка, которые в свою очередь так же являются интерфейсами и порядок их аргументов. Весело.
Было много вопросов, где ответ приходилось писать руками в специальный инпут, где то штук 10 насчитал. И попробуй ошибись хоть в одной букве.
Причем иногда приходилось вписывать в этот инпут "Ну очень длинное название метода который описан в неком интерфейсе".
Мне повезло в том, что в данный момент я нахожусь в отпуске и у меня было время на "освежение" памяти, иначе хрен бы ответил.

Что я получил от сдачи экзамена:
1. Хорошо изучил популярный и востребованный фреймворк
2. Изучил много хороших практик проектирования, что несомненно помогает мне разрабатывать приложения лучше чем прежде
3. Добавил блатную строчку в свое резюме

В течении 48 часов на моей страничке в Yellow Pages должен появиться бейдж подтверждающий сдачу мною данного экзамена.
Сертификат обещают прислать в течении 4-6 недель по почте.
Надеюсь эта заметка окажется для кого нибудь полезной.
teddy Отправлено: 21 Апреля, 2015 - 21:01:21 • Тема: Чем работать с Zip • Форум: Работа с файловой системой и файлами

Ответов: 4
Просмотров: 1058
MAXUS пишет:
Я так понимаю, встроенных нет

Здрасти.

http://php.net/manual/en/class.ziparchive.php
teddy Отправлено: 05 Апреля, 2015 - 00:07:04 • Тема: Помогите с PDO • Форум: Вопросы новичков

Ответов: 4
Просмотров: 188
Мелкий пишет:
Ещё как могут

Только в том случае, если ATTR_EMULATE_PREPARES установлен в true.
teddy Отправлено: 25 Марта, 2015 - 19:10:16 • Тема: Удалить лишнее из строки • Форум: Вопросы новичков

Ответов: 5
Просмотров: 335
Мелкий
Этот топ проклят... Ха-ха

GoDr
Да, уже поправил Улыбка
teddy Отправлено: 25 Марта, 2015 - 16:28:58 • Тема: Удалить лишнее из строки • Форум: Вопросы новичков

Ответов: 5
Просмотров: 335
Помоему нужно было наоборот Улыбка

teddy Отправлено: 21 Марта, 2015 - 00:32:31 • Тема: Модель MVC, что передавать в класс View • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1887
caballero пишет:
в чем неоднозначная?

Дело в том, что таким образом мы теряем идеологию MVC, т.е смешиваем все в кучу. Ты утверждаешь, что View должен сам заботиться о получении данных которые ему нужно "отрисовать". Для получения данных которые надо показать во вью может понадобится куча инструментов, например роутер, сессии, обращение к файловой системе, обращение к SOAP(и т.п) серверам с передачей и получением данных, использование API различных сайтов для получения данных которые нужно будет вывести в HTML, и все это ты собираешься делать во View? По хорошему реализация чего либо(в данном случае речь о View) не должна решать 100 задач, максимум одну, свою.

caballero пишет:
его дело представить данные с сервера. Статус коды тоже данные

Да, это данные. Но данные с сервера приходят с ответом, а View сам по себе не является ответом. Так же ответы могут быть разными. Ответ может быть например редиректом на сторонний ресурс, где лично твой View ничего отображать не будет. Представление в контексте MVC это графическое представление, которое в конечном счете видит пользователь.

caballero пишет:
где сказано что он должен быть? На курсах програмирования? мы обсуждаем принцип а не единственное решение которое ты видел в жизни

Ну, во первых это не единственное решение которое я видел в жизни, во вторых, как минимум потому, что это логично. Помимо того, что это логично, программист таким образом может определить для себя единую точку отправки ответа что делает архитектуру более предсказуемой и удобной. Попробуй подумать над этим на уровне интерфейсов а не на уровне реализации, думаю в этом случае все придет на свои места.
teddy Отправлено: 20 Марта, 2015 - 00:36:04 • Тема: Модель MVC, что передавать в класс View • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1887
DelphinPRO
Пример по правде говоря не очень Улыбка и добавление одной строчки в контроллере не составит труда, особенно ради внятного кода. И не факт что данные по вью передаются именно по указанному примеру. Мне например удобно сделать что то типа $model->find(array('id' => 5))->fetchIn('Package\Entity\User') и во вью уже отдать этот entity, тогда не придется править контроллер а достаточно будет вызвать $user->getAge()

caballero пишет:
в теме идет речь от ОТОБРАЖЕНИИ данных

А я понял. И получится у тебя неоднозначная логика.

caballero пишет:
что мешает view отправить щзаголовки а потом рендерить собственно страницу?

Технически ничего не мешает, но это не логично. Вью(имеется ввиду не шаблон а API который формирует разметку) не должен отправлять заголовки, его дело заниматься формированием разметки а не устанавливать статус коды/отправлять заголовки и т.п, для этого должен быть Response, который и должен возвращать сформированную View API разметку(если это требуется) + заголовки.

Более того, раз уж перекидываешь отправку ответа на шею View, то смотри: тебе надо отправить клиенту json и ничего более, разве логично отправлять его через View? Здесь нет никакого представления, это всего лишь json.

Псевдокод для нормального ответа:
PHP:
скопировать код в буфер обмена
  1.  
  2. $response->setHeaders(...);
  3. $response->setBody($view->getMarkup());
  4. $response->send();
  5.  


Спойлер (Отобразить)
teddy Отправлено: 19 Марта, 2015 - 18:19:22 • Тема: Модель MVC, что передавать в класс View • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1887
DelphinPRO пишет:
Зачем же так категорично? Почему вью не может сам обратиться к модели?

Потому что MVC подразумевает отделение мух от котлет.

caballero пишет:
Вообще то он и должен обращатся если по уму

Не нужно забывать, что работа с моделью подразумевает не только получение, но и изменение/добавление/удаление уже существующих данных, а эти задачи выходят за рамки view. К тому же, модель может не иметь данных для вью, а делать какие нибудь внутренние операции с данными, которые не подлежат представлению, что опять же не приемлемо для выполнения этих операций во вью. Так же есть ситуации, где во view работать с моделью уже будет поздно, например в том случае, как написали выше, если требуется отправить заголовки на основе извлеченных данных. А если действовать по обстоятельствам в отношении работы с моделью, это приведет к неоднозначности что отрицательно отразится на качестве кода.

Более того, очень часто приходится брать параметры из роутера, и на основе этих параметров извлекать данные из модели. Это означает, что во вью придется давать доступ в том числе и к роутеру, что не приемлемо, потому как вью не должен знать о роутере. Исключением может быть формирование ссылок по имени роута, и то обычно это делается через плагины вью, а не через прямое общение с роутером.

Можно ещё поговорить о том, почему не нужно работать с моделью во вью, но думаю этого достаточно.
teddy Отправлено: 14 Марта, 2015 - 10:35:29 • Тема: Вопрос по Zend Framework 2 • Форум: CMS и фреймворки

Ответов: 6
Просмотров: 1764
vova3261 пишет:
Не знаю правильно ли

Тут все зависит от того, что вообще нужно сделать в конечном счете.

Если требуется получить именно массив и требуется его дополнительная обработка, например применить к нему функции для работы с массивами, тогда все четко.

А если надо просто вывести данные в цикле, тогда не нужно делать лишние телодвижения вызывая toArray.
teddy Отправлено: 10 Марта, 2015 - 18:17:52 • Тема: Вопрос по Zend Framework 2 • Форум: CMS и фреймворки

Ответов: 6
Просмотров: 1764
armancho7777777
Явное обращение к ResultSet тут не нужно он и так вернется, нужно просто закинуть в форыч $result и в качестве значения будет "сваливаться" экземпляр ArrayObject, а там уже можно с ним работать как с объектом или как с массивом, на выбор.

ТС это все что тебе нужно
teddy Отправлено: 01 Марта, 2015 - 13:16:42 • Тема: запретить регистрацию пользователей в joomla через mysql • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1988
если есть единая точка входа то можно глубоко не нырять
достаточно в этой точке прописать условие если запрашиваемый адрес тот который регистрирует пользователей то убивать скрипт
teddy Отправлено: 01 Марта, 2015 - 12:15:59 • Тема: Что работает быстрее? • Форум: HTTP и PHP

Ответов: 4
Просмотров: 1370
До меня не доходит то почему разработчики делят один простой шаблон на образно выражаясь 1000 кусков даже когда это не нужно. Делить нужно тогда, когда в этом есть необходимость и только то, что нужно.

Например, есть какой то блок, который появляется на 4 разных страницах из 10. В этом случае есть смысл выделить этот самый блок в отдельный шаблон чтоб не дублировать код и подключать этот шаблон там где он нужен.

Если образно выражаясь меняется только "центральная часть", то тут двух шаблонов будет достаточно. Один постоянный(общий), а центральный уже подключать в зависимости от страницы. И да, инклюда тут более чем достаточно, никакие регулярные выражения и разделители не нужны. Скажи честно Вам самому удобно этим страдать?

По поводу скорости - тут все зависит от используемых инструментов и количества телодвижений в том или ином случае. Не буду расписывать подробно, думаю понятно о чем я.
teddy Отправлено: 01 Марта, 2015 - 11:22:22 • Тема: запретить регистрацию пользователей в joomla через mysql • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1988
Не нужно в БД ничего искать просто не доводи до сохранения входящие данные(например там где в коде процесс регистрации сделай exit('Регистрация запрещена');) ну или поставь нормальную капчу

ЗЫ: где и что лежит в джумле я не в курсе, тут уже сам подсуетись ;)
(Добавление)
Вот тут есть процесс отключения регистрации http://otvety[dot]google[dot]ru/otvety/t[dot][dot][dot]3a4522ba5d68e0fd из админки, а так как админки у тебя нет, попробуй поискать таблицы с наводящим названием ориентируясь по ссылке выше(если уверен что это дело управляется именно через БД) а не из какого нить там хмл или ещё чего то. Если гемора на поиск "правильного отключения" уйдет много времени то просто убей скрипт и не сохраняй данные
teddy Отправлено: 12 Февраля, 2015 - 20:48:41 • Тема: PDO : Транзакция • Форум: Работа с СУБД

Ответов: 7
Просмотров: 1460
GoDr
Я не успел отредактировать сообщение. Так и понял, что будут вопросы.
teddy пишет:
Не будь этого механизма, то первый query выполнился бы и было бы плевать если в третьем query произошел error.
teddy Отправлено: 12 Февраля, 2015 - 20:41:17 • Тема: PDO : Транзакция • Форум: Работа с СУБД

Ответов: 7
Просмотров: 1460
GoDr пишет:
что происходит при повторном вызове beginTransaction?

Транзакция внутри транзакции? Улыбка) Fatal error.

Смысл отключать автофиксацию в том, когда нужно получить "всё или ничего".
Либо запросы выполняются стопудово(ну, во всяком случае если ответ PHP после "общения" с СУБД таков), либо не выполняется вообще.

Например:

PHP:
скопировать код в буфер обмена
  1. try{
  2.  
  3.     $dbh->beginTransaction();
  4.     $dbh->query('...');
  5.     $dbh->query('...');
  6.     $dbh->query('...');
  7.     $dbh->commit();
  8.  
  9. }catch(PDOException $e){
  10.    
  11.     $dbh->rollBack();  
  12.  
  13. }


если в трайе пойдет что то не так(в контексте PDO), то ни один запрос не будет считаться зафиксированным. Не будь этого механизма, то первый query выполнился бы и было бы плевать если в третьем query произошел error.

Страниц (98): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB