Как увеличить скорость обучения Zend Framework?

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

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

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

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

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

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

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

Ответы

Ответ 1

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

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

2) Есть ли некоторые исходные коды сайта будет построено на уже доступных?

Лучшие источники сейчас - блоги, сайты и репозитории лидеров мысли ZF. Вот несколько ссылок, которые помогут вам начать:

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

Существует строительный лес в составе Zend_Tool, который планируется опубликовать в ZF v1.8. В настоящее время в инкубаторе я пробовал его на прошлой неделе, и он работает, но в его текущем состоянии не так много компонентов.

На прошлой неделе я, наконец, нашел время, чтобы собрать источники вместе (в том числе фид опроса Qaru ZF). Я поставил их под тегом Zend Framework в 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="Qaru ZF" title="Qaru 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>

Ответ 2

Akra DevNotes имеет отличный учебник, который создает пример приложения:

http://akrabat.com/zend-framework-tutorial/

Здесь я начал работать с ZF.

Ответ 3

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

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

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

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

и -last, но не менее -

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

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

Ответ 4

Я сейчас в вашей точной ситуации (всего несколько лет с php: P)

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

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

Ответ 5

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

Ответ 6

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

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

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

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

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

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

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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