-
Notifications
You must be signed in to change notification settings - Fork 0
/
version_history.html
120 lines (111 loc) · 8.31 KB
/
version_history.html
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
<!DOCTYPE html>
<html lang="en">
<head>
<title>Menukaarten-docs</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="assets/css/stylesheet.css" media="screen,print">
<link rel="stylesheet" href="assets/css/print.css" media="print">
<link rel="stylesheet" type="text/css" href="assets/css/shCore.css" media="screen,print">
<link rel="stylesheet" type="text/css" href="assets/css/shThemeDefault.css" media="screen,print">
<script type="text/javascript" src="assets/js/jquery.min.js"></script>
<script type="text/javascript" src="assets/js/SyntaxHighlighter.js"></script>
<script type="text/javascript" src="assets/js/build_menu.js"></script>
</head>
<body>
<div id="header-wrapper">
<div id="header">
<h1>Documentation SexyFramework</h1>
<span>Created by Vincent Bremer & Douwe de Haan</span>
</div>
</div>
<div id="container">
<div id="menu-wrapper">
<div id="menu">
<h1>Table of contents</h1>
<ul></ul>
</div>
</div>
<div id="content-wrapper">
<div id="content">
<!-- START CONTENT -->
<h1>Version history</h1>
<p>In this piece of the document the different builds of our framework are documented and the differences between the versions are explained.</p>
<h2>Version 0.1:</h2>
<span class="bold">Framework:</span> Kohana<br />
<p>The first version created was build on the Kohana framework. Kohana is a fork of the Codeigniter Framework. Because of experience with this framework it was chosen for the first built of the application.</p>
<p>Apparently, Kohana was bloated and had so many unused files for the project, that the decision was made to create a new framework. That is were SexyFramework was born. Then why is version 0.1 still in this version history? Because it was the start of SexyFramework. Some design patterns were copied from Kohana, some from other frameworks and others where created out of experience.</p>
<h2>Version 0.2:</h2>
<span class="bold">Framework:</span> SexyFramework<br />
<p>The first version is version 0.2. The idea that arose during the phase before was the first version and after some tests this version was created. The naming of the folders was more like a summary of the files it contained. The Lib folder contained the files with the classes that were extended by basically all the other files or very important files for the system, like the config-file, base controller and model and a database-file. The routes were also described in a file in this folder.</p>
<h2>Version 0.3:</h2>
<p>In this version many methods changed between classes. Mostly because the class they were in wasn't the right one. For example: the method to load views was a method in the base controller. It is now positioned in the base view.</p>
<span class="bold">Framework:</span> SexyFramework<br />
<ul>
<li>Switched to new folder structure
<p>The previous version had a folder structure that was just made, not thought thru. In this version the folders are rearranged to a better structure where the names still show what is in the folder. The folders containing the controllers, models and views are now in the application folder, which made it more clear and easier to work with. Lib was renamed to core, because that is what it is. It wasn't a folder with libraries anymore. There are also two subfolders in core, namely modules and helpers. A module is a class which can be extended, like an admin-part of the website. A helper is a class that helps you with for instance translation or creating HTML.</p>
</li>
<li>Removed ORM
<p>The ORM class is removed. It was pretty hard to write a good ORM and the file was obsolete, so the decision was made to get rid of it. Query methods like find and find_by_id are placed in the base model. This also means that all models now extend at the base model directly.</p>
</li>
<li>Created base view with view methods from the base controller
<p>When the base controller was updated, a lot of methods in it seemed to be in the wrong place, because they had more to do with views than with controllers. To keep methods and variables organised, the base controller was cleaned of these view methods, which were then combined into the base view.</p>
</li>
<li>Model now loaded in base model instead of base controller
<p>The method to load models is replaced to the base model. This for the same reason the base view was created, to keep things organised. Also the base model now handles almost everything that is related to databases, models or queries.</p>
</li>
</ul>
<h2>Version 0.4:</h2>
<span class="bold">Framework:</span> SexyFramework<br />
<ul>
<li>Validation Helper built
<p>To assist in validating data, the validation helper is created. Rules can be specified in each model. The validation helper is build in a way which is easily expandable. It now has methods to check for numeric types, wether the value that is passed is an e-mailaddress or not. It is implemented in a way which will change later, because it was created to test and not to stay this way.</p>
</li>
<li>Load Module created
<p>A module is build to load views and models. Because they have the same purpose, to load things, they are combined into a single module.</p>
</li>
<li>Router class and router combined to router module
<p>The two router files could be combined into one, which keeps things clear. It is made into a module.</p>
</li>
<li>Dbase class removed
<p>It became obsolete, so we removed it. The base model already does all of the queries and the database class serves the connection. It also is better to have base files that work on their own, than have some that require other parts.</p>
</li>
<li>Removed the DEFAULT_TEMPLATE global variable
<p>Templates are now defined in the controllers. In this way it is possible to have a different templates for methods in the same controller. The main reason for this choice is flexibility.</p>
</li>
</ul>
<h2>Version 0.5:</h2>
<span class="bold">Framework:</span> SexyFramework<br />
<ul>
<li>routes now only in config/routes.json
<p>To ensure that there is no need to alter the core, a json is provided, in which routes can be made.</p>
</li>
<li>Load and router module replaced with a core class
<p>Because the framework can not work without these two classes, they were converted to core classes. This also means that modules are an option and must not be required for the framework to work. This is a decision that was made to keep things even more clear and to keep files organised.</p>
</li>
<li>Admin and image modules created
<p>To make it easier for programmers to create a section which is protected with a login method, the admin module was created. This also provides security per class and per method. To help resizing and saving images the image module was created.</p>
</li>
<li>Base controller tries to load a model that corresponds with the loaded controller
<p>To make it even more easy for programmers, the framework now tries to get a model that has the singular name of the controller that has been called for. If it does not exist, it does not load anything.</p>
</li>
</ul>
<h2>Version 0.6:</h2>
<span class="bold">Framework:</span> SexyFramework<br />
<ul>
<li>Created text and date helper
<p>Text helper can create a nice layout for specific types of text. For instance it can create a good layout for prices, with symbols like euro's and dollars. The date helper returns a date in whatever pattern you choose.</p>
</li>
<li>Applied Singleton design pattern to database
<p>To ensure that there is always a single database connection and not multiple, the init method of the database class has been rewritten. It now follows the Singleton design pattern. It checks wether it is already active or not, if so, it returns itself. If not, it makes a connection and returns it.</p>
</li>
<li>Completed plural helper with almost all rules
<p>The plural helper is finished. It has all the rules that were found. It could be there are a few missing, but they can be added later. This helper is mostly used to pluralize controllers, which should return the corresponding model. This helper is used in the core of the framework, so maybe it is changed to a core feature later, but for now it is a helper.</p>
</li>
</ul>
<!-- END CONTENT -->
</div>
</div>
</div>
<script type="text/javascript" src="assets/js/SyntaxHighlighter_settings.js"></script>
</body>
</html>