2009-03-21 12 views
13

Преамбула: Я использую PHP более 8 лет и время от времени, но никогда не использовал фреймворк, только писал скрипты и аддоны. В основном я использовал генераторы кода, такие как CodeCharge Studio или собственный код для приложений интрасети. Поскольку я в порядке с шаблонами дизайна, Zend framework не выглядит слишком тяжелым для меня, чтобы учиться.Как увеличить скорость обучения Zend Framework?

Начиная с ZF: Я прочитал руководство по QuickStart и задаюсь вопросом, что может ускорить меня с быстрой базой разработки веб-приложений Zend. Как я понимаю, есть повторяющихся задач, которые занимают много времени.

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

1) Вы, разработчики Zend, используете какие-то прототипы, которые вы написали, чтобы быстро развернуть базовый сайт?

2) Или есть некоторые исходные коды сайтов, которые будут созданы на уже имеющихся?

3) Есть ли какой-нибудь генератор приложений или вспомогательный инструмент для страниц с сетками, записями и т. Д.?

P.S. Я прекратил изучать EJB более 6 лет назад, потому что у меня не было никого, кто задавал бы подобные вопросы. ТИА!

ответ

20

1) Есть ли разработчики ZF использовать некоторые вид прототипов раскатать основного сайта быстро?

Zend Framework еще слишком молод для компонентов в этой области, однако есть an unofficial PEAR channel. По состоянию на март '09 лидеров мысли по-прежнему, кажется, обсуждают лучшие способы организовать все. Я лично очень волнуюсь о domain-driven initiatives, поскольку они будут самыми надежными.

2) Есть ли какие-то исходные коды сайта , которые будут построены на уже имеющихся?

Лучшие источники сейчас являются блогами, сайтами и хранилищами лидеров мысли ZF. Вот несколько ссылок, чтобы вы начали:

  • Брайан здесь, в комментариях примечаниями Rob Allen's tutorial. Он был первым, кто действительно вышел за рамки основ и стал основой для своей книги Zend Framework In Action.

  • Padraic Brady's blog application tutorial и svn repository был одним из самых полных примеров, показывающих, как многие компоненты подходят друг к другу. Он переносится в онлайн-книгу под названием Survive The Deep End, но займет некоторое время как he mentions in his blog that he's extremely busy.

  • Matthew Weier O'Phinney сделал несколько интересных установок, которые вы можете read about и clone from his github repository. В ветке «bugapp», особенно в этом репо, есть интересные методы. В последнее время он работает локально, поэтому latest updates are in his blog.

  • Damien Mathieu работает над DRY framework основан на передовой практике.

3) Есть ли какие-приложение генератор или второстепенный инструмент для страниц с сетками, записей и т.д.?

В ZF v1.8 есть версия scaffolding-generator as a part of Zend_Tool. В настоящее время он находится в инкубаторе, я пробовал его на прошлой неделе, и он работает, но в его текущем состоянии не так много компонентов.

На прошлой неделе я, наконец, нашел время, чтобы собрать источники вместе (включая фид вопросов о переполнении стека). Я поставил их под Zend Framework tag in Google Reader и с течением времени будет рафинировать источники подачи. Если вы предпочитаете управлять ими самостоятельно, вот текущий OPML.

Удачи! Матф

<?xml version="1.0" encoding="UTF-8"?> 
<opml version="1.0"> 
    <head> 
     <title>expertseries | Zend Framework | Google Reader</title> 
    </head> 
    <body> 
     <outline title="Zend Framework" text="Zend Framework"> 
      <outline text="A.J. Brown" title="A.J. Brown" type="rss" 
       xmlUrl="http://feeds.feedburner.com/ajbrowns_blog" htmlUrl="http://ajbrown.org/blog"/> 
      <outline text="Armando Padilla" title="Armando Padilla" 
       type="rss" xmlUrl="http://www.armando.ws/?feed=rss2" htmlUrl="http://www.armando.ws"/> 
      <outline text="Benjamin Eberlei" title="Benjamin Eberlei" 
       type="rss" 
       xmlUrl="http://www.whitewashing.de/about/rss/all" htmlUrl="http://www.whitewashing.de"/> 
      <outline text="Bradley Holt" title="Bradley Holt" type="rss" 
       xmlUrl="http://bradley-holt.blogspot.com/feeds/posts/default" htmlUrl="http://bradley-holt.blogspot.com/"/> 
      <outline text="Cal Evans" title="Cal Evans" type="rss" 
       xmlUrl="http://blog.calevans.com/feed/" htmlUrl="http://blog.calevans.com"/> 
      <outline text="Chris Hope" title="Chris Hope" type="rss" 
       xmlUrl="http://feedproxy.google.com/ElectricToolboxBlog" htmlUrl="http://www.electrictoolbox.com"/> 
      <outline text="Codecaine.co.za" title="Codecaine.co.za" 
       type="rss" xmlUrl="http://www.codecaine.co.za/rss/" htmlUrl="http://www.codecaine.co.za/"/> 
      <outline text="Douglas Brown" title="Douglas Brown" 
       type="rss" xmlUrl="http://www.brownphp.com/feed/" htmlUrl="http://www.brownphp.com"/> 
      <outline text="Federico Cargnelutti" 
       title="Federico Cargnelutti" type="rss" 
       xmlUrl="http://blog.fedecarg.com/feed/" htmlUrl="http://blog.fedecarg.com"/> 
      <outline text="Jani Hartikainen" title="Jani Hartikainen" 
       type="rss" xmlUrl="http://codeutopia.net/blog/feed/" htmlUrl="http://codeutopia.net/blog"/> 
      <outline text="Juozas Kaziukėnas" title="Juozas Kaziukėnas" 
       type="rss" xmlUrl="http://dev.juokaz.com/feed/rdf" htmlUrl="http://dev.juokaz.com"/> 
      <outline text="Matthew Turland" title="Matthew Turland" 
       type="rss" xmlUrl="http://ishouldbecoding.com/atom/1" htmlUrl="http://ishouldbecoding.com/"/> 
      <outline text="Matthew Weier O'Phinney" 
       title="Matthew Weier O'Phinney" type="rss" 
       xmlUrl="http://weierophinney.net/matthew/feeds/index.rss2" htmlUrl="http://weierophinney.net/matthew/"/> 
      <outline text="Michelangelo van Dam" 
       title="Michelangelo van Dam" type="rss" 
       xmlUrl="http://www.dragonbe.com/feeds/posts/default" htmlUrl="http://www.dragonbe.com/"/> 
      <outline text="Mike Rötgers" title="Mike Rötgers" type="rss" 
       xmlUrl="http://www.roetgers.org/feed/" htmlUrl="http://www.roetgers.org"/> 
      <outline text="Nick Lo" title="Nick Lo" type="rss" 
       xmlUrl="http://www.ingredients.com.au/nick/feed/" htmlUrl="http://www.ingredients.com.au/nick"/> 
      <outline text="Pádraic Brady" title="Pádraic Brady" 
       type="rss" 
       xmlUrl="http://blog.astrumfutura.com/feeds/index.rss2" htmlUrl="http://blog.astrumfutura.com/"/> 
      <outline text="Raphael Stolt" title="Raphael Stolt" 
       type="rss" 
       xmlUrl="http://raphaelstolt.blogspot.com/feeds/posts/default" htmlUrl="http://raphaelstolt.blogspot.com/"/> 
      <outline text="Rob Allen" title="Rob Allen" type="rss" 
       xmlUrl="http://akrabat.com/feed/" htmlUrl="http://akrabat.com"/> 
      <outline text="Robert Basic" title="Robert Basic" type="rss" 
       xmlUrl="http://feeds2.feedburner.com/robertbasic/blog/" htmlUrl="http://robertbasic.com/blog"/> 
      <outline text="Stack Overflow ZF" title="Stack Overflow ZF" 
       type="rss" 
       xmlUrl="http://stackoverflow.com/feeds/tag/zend-framework" htmlUrl="http://stackoverflow.com/questions/tagged/zend-framework"/> 
      <outline text="Thomas Weidner" title="Thomas Weidner" 
       type="rss" 
       xmlUrl="http://www.thomasweidner.com/flatpress/feed/rss2/" htmlUrl="http://www.thomasweidner.com/flatpress/"/> 
      <outline text="Tom Graham" title="Tom Graham" type="rss" 
       xmlUrl="http://www.noginn.com/feed/" htmlUrl="http://www.noginn.com"/> 
      <outline text="Zend Dev Zone" title="Zend Dev Zone" 
       type="rss" 
       xmlUrl="http://feeds.feedburner.com/ZendDeveloperZone" htmlUrl="http://devzone.zend.com/"/> 
     </outline> 
    </body> 
</opml> 
+0

Спасибо за все ресурсы. Я кодировал ColdFusion в течение 5 лет и сразу попал в php и Zend, поэтому они помогут ... – JasonBartholme

+0

фантастический ответ, почему я этого не нашел раньше. – markus

1

Я в вашей конкретной ситуации сейчас (всего менее года с PHP: P)

В настоящее время я использую Zend Framework в действии в качестве эталона и за то, что я видел до сих пор довольно легко повторное использование вашей структуры из старых рабочих мест. После того как вы настроили свои предпочтительные параметры и древовидную структуру, вы можете повторно использовать их снова и снова.

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

+0

Действительно, похоже, что инкрементная эволюция собственного базового проекта здесь имеет место в качестве базового метода прототипирования – AlexA

1

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

1

Как я понимаю, есть повторяющиеся задачи, требующие много времени.

Это правда, и, как вы заявили, практически каждый сайт имеет регистрационный процесс и тому подобное.Хотя я согласен с тем, что реализация таких функций снова и снова может повторяться, в какой-то мере каждое приложение будет иметь свой собственный уникальный набор требований, то есть будет задействована хотя бы небольшая работа по настройке, даже если вы повторно используете код из более старый проект на основе ZF. Я теперь буду иметь Баш на ответить на ваши вопросы пронумерованных

ли вы, разработчики Zend, использовать какое-то прототипы вы написали катиться из основного сайта быстро?

Не совсем. Я бы не выбрал ZF для «базового» сайта и не использовал бы какую-либо структуру MVC. Мое предположение состоит в том, что базовый сайт состоит из 8-12 отдельных частей, без особых функций и конечных требований. Помните, что, как только мы говорим «framework», почти всегда наблюдается заметный успех в производительности, помимо любых ошибок и проблем, которые могут быть присущи этой структуре. «Прототипы», о которых вы говорите, будут в классах, доступных в рамках Zend Framework, например, Zend_Auth для создания полнофункциональной системы аутентификации примерно за 15 минут.

2) Или есть некоторые исходные коды сайта , которые будут построены на уже имеющихся?

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

3) Есть ли какие-приложение генератор или второстепенный инструмент для страниц с сетками, записей и т.д.?

Я не совсем уверен, что вы подразумеваете под этим, но если бы мне пришлось угадать, возможно, Zend Studio?

+0

3- Обычно это называется Леса. –

+0

Хорошая мысль, я думал о графическом интерфейсе, который, как я полагаю, подобен элементам управления, основанным на данных, в Visual Studio. – karim79

2

Если вы уже знакомы с MVC и шаблонов проектирования, то почему бы не заглянуть инструментов помогает вам код быстрее?

Хотя я вообще люблю бесплатные инструменты, я должен сказать, что использование Zend Studio IDE (на основе Eclipse) помогает ускоряться (30-дневная бесплатная пробная версия).

Основными точками (кроме отладчика/профайлера):

  • он может генерировать скелет для приложений MVC
  • код по умолчанию скелеты для основных кирпича (контроллеры, взгляды, модели)

и кого, но не наименьших

  • автозаполнение для всех классов Zend (и вы можете нажать Ctrl + щелчок по именам классов, чтобы открыть их). Очень удобно, что я должен сказать.

Просто убедитесь, что у вас есть компьютер с большой памятью!

0

Существует хорошая немецкая книга, вы можете найти приложение стартера в архиве на этом сайте и изучить код: http://www.zend-framework-buch.de/

0

У нас есть инструмент, который может помочь: nWire for PHP анализирует код, помогает вам перемещаться по он и визуально представляет компоненты и ассоциации. В конце концов вам нужно будет прочитать код, а с помощью nWire это станет намного проще.

0

Для начала перехода вы можете прочитать книгу «Learn ZF2». Он написан с помощью основных членов команды Zend Framework 2 (ZF2) и создателей курсов ZF2 и, вероятно, является лучшим решением для получения хорошей информации о Zend Framework 2 и его возможностях. Книги сопровождаются исходным кодом, и это приводит вас шаг за шагом через различные концепции. Интересное чтение, которое улучшается с каждой страницы.

Смежные вопросы