Introduction.xml

Sebastian Kurfuerst, 2011-08-26 10:26

Download (6.7 kB)

 
1
<?xml version="1.0" encoding="UTF-8"?>
2
<chapter version="5.0" xml:id="flow3.introduction"
3
         xmlns="http://docbook.org/ns/docbook"
4
         xmlns:ns6="http://www.w3.org/1999/xlink"
5
         xmlns:ns5="http://www.w3.org/2000/svg"
6
         xmlns:ns4="http://www.w3.org/1999/xhtml"
7
         xmlns:ns3="http://www.w3.org/1998/Math/MathML"
8
         xmlns:ns="http://docbook.org/ns/docbook">
9
  <title>Introduction</title>
10

    
11
  <para>FLOW3 is a PHP-based application framework. It is especially
12
  well-suited for enterprise-grade applications and explicitly supports
13
  Domain-Driven Design, a powerful software design philosophy. Convention over
14
  configuration, Test-Driven Development, Continuous Integration and an
15
  easy-to-read source code are other important principles we follow for the
16
  development of FLOW3.</para>
17

    
18
  <para>Although we created FLOW3 as the foundation for the TYPO3 Content
19
  Management System, its approach is general enough to be useful as a basis
20
  for any other PHP application. We're happy to share the FLOW3 framework with
21
  the whole PHP community and are looking forward to the hundreds of new
22
  features and enhancements contributed as packages by other enthusiastic
23
  developers. In fact most of the packages which will be developed for the
24
  TYPO3 CMS can be used in any other FLOW3-based application. In essence this
25
  reflects the vision of the TYPO3 project: "Inspiring People to
26
  Share".</para>
27

    
28
  <para>This reference describes all features of FLOW3 and provides you with
29
  in-depth information. If you'd like to get a feeling for FLOW3 and get
30
  started quickly, we suggest that you try out our Getting Started tutorial
31
  first.</para>
32

    
33
  <note>
34
    <para>Although we hope that the documentation is accurate and up to date,
35
    it probably misses some important sections or parts that are hard to
36
    understand. If you find errors or would like to help us improving the
37
    documentation, we're happy to hear from you on our mailing list!</para>
38
  </note>
39

    
40
  <section xml:id="flow3.introduction.overview">
41
    <title>Overview</title>
42

    
43
    <para>The FLOW3 framework is composed of the following submodules:</para>
44

    
45
    <itemizedlist>
46
      <listitem>
47
        <para>The <emphasis>FLOW3 Bootstrap</emphasis> takes care of
48
        configuring and initializing the whole framework.</para>
49
      </listitem>
50

    
51
      <listitem>
52
        <para>The <emphasis>Package</emphasis> Manager allows you to download,
53
        install, configure and uninstall packages.</para>
54
      </listitem>
55

    
56
      <listitem>
57
        <para>The <emphasis>Object</emphasis> Manager is in charge of
58
        building, caching and combining objects.</para>
59
      </listitem>
60

    
61
      <listitem>
62
        <para>The <emphasis>Configuration</emphasis> framework reads and
63
        cascades various kinds of configuration from different sources and
64
        provides access to it.</para>
65
      </listitem>
66

    
67
      <listitem>
68
        <para>The <emphasis>Resource</emphasis> module contains functions for
69
        publishing, caching, securing and retrieving resources.</para>
70
      </listitem>
71

    
72
      <listitem>
73
        <para>The <emphasis>MVC</emphasis> framework takes care of requests
74
        and responses and provides you with a powerful, easy-to use
75
        Model-View-Controller implementation.</para>
76
      </listitem>
77

    
78
      <listitem>
79
        <para>The <emphasis>Cache</emphasis> framework provides different
80
        kinds of caches with can be combined with a selection of cache
81
        backends.</para>
82
      </listitem>
83

    
84
      <listitem>
85
        <para>The <emphasis>Error</emphasis> module handles errors and
86
        exceptions and provides utility classes for this purpose.</para>
87
      </listitem>
88

    
89
      <listitem>
90
        <para>The <emphasis>Log</emphasis> module provides simple but powerful
91
        means to log any kind of event or signal into different types of
92
        backends.</para>
93
      </listitem>
94

    
95
      <listitem>
96
        <para>The <emphasis>Signal Slot</emphasis> module implements the
97
        event-driven concept of signals and slots through AOP aspects.</para>
98
      </listitem>
99

    
100
      <listitem>
101
        <para>The <emphasis>Validation</emphasis> module provides a validation
102
        and filtering framework with built-in rules as well as support for
103
        custom validation of any object.</para>
104
      </listitem>
105

    
106
      <listitem>
107
        <para>The <emphasis>Property</emphasis> module implements the concept
108
        of property editors and is used for setting and retrieving object
109
        properties.</para>
110
      </listitem>
111

    
112
      <listitem>
113
        <para>The <emphasis>Reflection</emphasis> API complements PHP's
114
        built-in reflection support by advanced annotation handling and a
115
        cached reflection service.</para>
116
      </listitem>
117

    
118
      <listitem>
119
        <para>The <emphasis>AOP</emphasis> framework enables you to use the
120
        powerful techniques of <firstterm>Aspect Oriented
121
        Programming</firstterm>.</para>
122
      </listitem>
123

    
124
      <listitem>
125
        <para>The <emphasis>Persistence</emphasis> module allows you to
126
        transparently persist your objects following principles of
127
        <emphasis>Domain Driven Design</emphasis>.</para>
128
      </listitem>
129

    
130
      <listitem>
131
        <para>The <emphasis>Security</emphasis> framework enforces security
132
        policies and provides an API for managing those.</para>
133
      </listitem>
134

    
135
      <listitem>
136
        <para>The <emphasis>Session</emphasis> framework takes care of session
137
        handling and storing session information in different backends</para>
138
      </listitem>
139

    
140
      <listitem>
141
        <para>The <emphasis>Locale</emphasis> service manages languages and
142
        other regional settings and makes them accessible to other packages
143
        and FLOW3 sub packages.</para>
144
      </listitem>
145

    
146
      <listitem>
147
        <para>The <emphasis>Utility</emphasis> module is a library of useful
148
        general-purpose functions for file handling, algorithms, environment
149
        abstraction and more.</para>
150
      </listitem>
151
    </itemizedlist>
152

    
153
    <para>If you are overwhelmed by the amount of information in this
154
    reference, just keep in mind that you don't need to know all of it to
155
    write your own FLOW3 packages. You can always come back and look up a
156
    specific topic once you need to know about it - that's what references are
157
    for. But even if you don't need to know everything, we recommend that you
158
    get familiar with the concepts of each module and read the whole manual.
159
    This way you make sure that you don't miss any of the great features FLOW3
160
    provides and hopefully feel inspired to produce clean and
161
    easy-maintainable code.</para>
162

    
163
    <tip>
164
      <para>A strong coffee helps most people over even the longest
165
      documentation.</para>
166
    </tip>
167
  </section>
168
</chapter>