1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137 |
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<title>About IgnitedRecord - IgnitedRecord User Guide Version 1.0.0</title>
<link rel='stylesheet' type='text/css' media='all' href='./userguide.css' />
<link rel="Shortcut Icon" href="images/favicon.ico">
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript" src="./nav.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$('#nav').hide();
$('#toggle_toc').click(function(){
$('#nav').slideToggle();
})
});
</script>
</head>
<body>
<div id="nav">
<script type="text/javascript">menu();</script>
</div>
<div id="nav2"><a name="top"></a><a id="toggle_toc"><img src="images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>IgnitedRecord User Guide Version 1.0.0</h1></td>
<td id="breadcrumb_right"><a href="toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.assembla.com/spaces/IgnitedRecord">IgnitedRecord Home</a> › IgnitedRecord User Guide › About IgnitedRecord
</td>
<td id="searchbox"></td>
</tr>
</table>
<div id="content">
<div class="center"><img src="images/ignitedrecord_logo.png" border="0" alt="IgnitedRecord" /></div>
<h2>About IgnitedRecord</h2>
<p>
IgnitedRecord is a relation handling <abbr title="Object Relational Mapping">ORM</abbr>
<sup><a name="id1" href="#ftn.id1">[1]</a></sup> library,
made for the PHP framework <a href="http://www.codeigniter.com">CodeIgniter</a>.
</p>
<p>
The goal of IgnitedRecord is to provide an easy to use, easily customizeable, ORM library to CodeIgniter.
</p>
<h2>Architecture of IgnitedRecord</h2>
<p>
IgnitedRecord is designed with the factory pattern in mind
and the models themselves does not contain the data.<br />
Instead, they handle all the interaction with the database and provide the methods
for fetching record objects from the database.<br />
The record objects contain a reference to the object which created them,
thus getting the ability to interact with the database.
</p>
<p>
So instead of creating new instances of the model, as you do in normal
ActiveRecord<sup><a name="id2" href="#ftn.id2">[2]</a></sup>, you ask the model to instantiate the records.
</p>
<p>
It's more like the DataMapper<sup><a name="id3" href="#ftn.id3">[3]</a></sup> pattern,
where the record objects have no awareness of the underlying database.
Instead they ask a mapper (in IgnitedRecord, the model is the mapper) to
fetch, save and update data.
</p>
<h2>Is IgnitedRecord right for me?</h2>
<p>
IgnitedRecord is right for you if you…
</p>
<ul>
<li>…want to simplify your interaction with the database.</li>
<li>…want to have an ORM tool with good performance.</li>
<li>…prefer an abstracted data model to interact with, instead of interacting directly with the database using SQL.</li>
<li>…want to be able to produce advanced queries, but not abandon the advantages of an ORM.</li>
<li>…want to be able to use relations and easily customize the queries to get what you want.</li>
<li>…like to customize things.</li>
<li>…want to keep your code <abbr title="Don't Repeat Yourself">DRY</abbr>.</li>
</ul>
<p>
</p>
<p>
</p>
<div class="footnote">
<p>
<sup><a name="ftn.id1" href="#id1">[1]</a></sup>
Object Relational Mapping, See <a href="http://wikipedia.org/wiki/Object-relational_mapping">Wikipedia about Object Relational Mapping</a>
</p>
<p>
<sup><a name="ftn.id2" href="#id2">[2]</a></sup>
A pattern for Object Relational Mapping, See <a href="http://wikipedia.org/wiki/Active_Record">Wikipedia about ActiveRecord</a>
</p>
<p>
<sup><a name="ftn.id3" href="#id3">[3]</a></sup>
Another pattern for Object Relational Mapping, See <a href="http://www.martinfowler.com/eaaCatalog/dataMapper.html">An abbrevated text from Patterns of Enterprise Application Architecture</a>
</p>
</div>
</div>
<div id="footer">
<p><a href="#top">Top of Page</a></p>
<p><a href="http://www.assembla.com/spaces/IgnitedRecord">IgnitedRecord</a> · Copyright © 2008 · Martin Wernstahl</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006-2008 · <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>
</body>
</html> |