<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.tool.project.introduction">
    <title>Zend_Tool_Project Introduction</title>

    <para>
        Zend_Tool_Project builds on and extends the capabilities of Zend_Tool_Framework to that
        of managing a "project". In general, a "project" is a planned endeavor or an initiative.
        In the computer world, projects generally are a collection of resources. These resources
        can be files, directories, databases, schemas, images, styles, and more.
    </para>

    <para>
        This same concept applies to Zend Framework projects. In ZF projects, you have controllers,
        actions, views, models, databases and so on and so forth. In terms of Zend_Tool, we need a
        way to track these types of resources - thus Zend_Tool_Project.
    </para>

    <para>
        Zend_Tool_Project is capable of tracking project resources throughout the development
        of a project. So, for example, if in one command you created a controller, and in the next
        command you wish to create an action within that controller, Zend_Tool_Project is gonna have
        to <emphasis>know</emphasis> about the controller file you created so that you can (in the next action),
        be able to append that action to it. This is what keeps our projects up to date and
        <emphasis>stateful</emphasis>.
    </para>

    <para>
        Another important point to understand about projects is that typically, resources are organized
        in a hierarchical fashion. With that in mind, Zend_Tool_Project is capable of serializing the
        current project into a internal representation that allows it to keep track of not only
        <emphasis>what</emphasis> resources are part of a project at any given time, but also
        <emphasis>where</emphasis> they are in relation to one another.
    </para>
</sect1>