Permalink
Browse files

enhancements

  • Loading branch information...
1 parent a5622f4 commit de9efb547d7c68ea13a3f1c3a5b88db93683b9b8 @romaninsh romaninsh committed May 22, 2012
View
@@ -35,7 +35,7 @@ function init(){
'Pages, Routing and Linking',
'route'=>'Determining The Current Page',
'link'=>'Building Links to Pages',
- 'add'=>'Adding More Pages',
+ 'add'=>'Adding Static and Dynamic Pages',
'misc'=>'Best Practices and Misc. Info',
'example'=>'Practical Examples',
),
@@ -1,14 +1,17 @@
+<h3>Step 2: Native PHP integration of jQuery</h3>
<div class="g-row" id="doc-ref">
- <div class="g-6">
- <h3>jQuery UI Based API and AJAX</h3>
- <p>
- Agile Toolkit is based on industry-standard jQuery and jQuery UI to build interactivity between user interface and
- server-side. Through abstraction, you will be able to harness power of AJAX, jQuery Plugins and jQuery UI Widgets
- from the comfort of the PHP. Even if your plugin have never been used with Agile Toolkit, integrating it will be
- a super-easy. Next 2 examples contain zero JavaScript code.</p>
- <h4>The Math Problem</h4>
- <?Execute?>
+ <div class="g-6">
+ <p>We know well that some things are better done on the server-side while other things are better done in the browser. When
+ it comes to integrating JavaScript with PHP, most PHP frameworks offer no help at all.</p>
+
+ <p>Agile Toolkit has a unique <b>Native</b> integration. The principle is incredible simple yet amazingly powerful.
+ You define JavaScript behaviour in a plain PHP language.</p>
+
+ <p>Below are just some examples of how short PHP code can produce a fully-functional AJAX applications. They demonstrate
+ independence of widgets, and are both implemented as a short block of PHP code, no extra JavaScript or CSS required.</p>
+
+ <?Execute?>
$f=$p->add('Form',null,null,array('form_empty'));
$f->addField('line','a','')
->set(2)->setProperty('size',4)
@@ -32,21 +35,21 @@
}
<?/?>
<br/>
- <?Execute?>
- $this->add('Hangman');
- <?/?>
+<?Execute?>
+$this->add('Hangman');
+<?/?>
+
+
-
+ </div>
+ <div class="g-6">
+ <h4>Everything just works!</h4>
+ <p>Agile Toolkit hides a lot of complexity a typical use of JavaScript on AJAX site would encounter. Loading
+ indication, dependencies, 3rd party jQuery plugin integration, load-on-demand, JavaScript escaping and encoding,
+ JSON as well as many other small tasks are routinely performed by Agile Toolkit.</p>
- </div>
- <div class="g-6">
- <h3>Everything just works!</h3>
- <p>If you are developer with experience, you will find yourself often over-thinking the framework. Once you
- understand core principles of Agile Toolkit, you will be able to read any code written for Agile Toolkit
- with great ease.
-
- </p>
+ </p>
<?Execute?>
$page->js()
->_load("highcharts/highcharts")
@@ -57,21 +60,14 @@
->univ()
->highchart(array(
'chart'=>array('width'=>480,'height'=>300),
- 'title'=>array('text'=>'Why Developers love Agile Toolkit?'),
+ 'title'=>array('text'=>'Why Will Love You Agile Toolkit?'),
'series'=>array(array('type'=>'pie',
'data'=>array(
- array('Simplicity',40),
- array('User Interface',30),
- array('Business Logic',20)
+ array('Simple to Learn',40),
+ array('Looks Awesome',30),
+ array('Enterprise Features',20)
)
))));
<?/?>
-
+ </div>
</div>
-<!--
-$form=$page->add('Form');
-$form->addField('line','phone')->js(true)
- ->_load('jquery.maskedinput-1.3.min')
- ->mask('(999) 999-9999')
- ->univ()->disableEnter();
- -->
@@ -1,61 +1,43 @@
-<div class="g-row">
- <div class="g-6">
- <h3>Open for Business</h3>
- <p>
- Today Agile Toolkit already powers over thousands of sites big and small — On-Line accounting SaaS, loan calculators,
- time planners, bug-trackers, finance and inventory managers, blogs and personal sites. This is made possible by
- features such as:
- <ul>
- <li>Built-in Integrated ORM system</li>
- <li>Database Dynamic Query Language</li>
- <li>Object-Oriented Model Layer</li>
- <li>Transparent injection prevention</li>
- <li>Development and Deployment mode</li>
- <li>Visual Unit-testing framework</li>
- <li>Customizable Routing, Application</li>
- <li>Integrated Filestore with volume support</li>
- <li>Many more...</li>
-
- </ul>
-
-
-
+<h3>Step 3: Long-term Solid Foundation for Business Software</h3>
-
-
- Model implementation in Agile Toolkit gives you a great opportunity to bind Views to a business entity. Models,
- implemented as pure PHP classes. They define properties, behaviour, relations and conditions of a business entity. Once
- defined they can be inherited and used inside any View.
-
- </p>
- <a style="float: left" href="<?page?>intro<?/?>" target="_blank">More Examples</a>
+<div class="g-row">
+ <div class="g-6">
+ <p>Today you may come across many curious hobbyist frameworks but many do not deserve to power your next big
+ web project. Agile Toolkit is ready for Corporations and Businesses which have very strict expectations</p>
+
+ <h4>Performance and Scalability</h4>
+ <p>Frameworks introduce overheads. Caching is often the wrong solution. Agile Toolkit focuses at improving
+ scalability of your application while keeping code clean and lightweight.</p>
+
+ <p>Agile Toolkit allows you to build extremely complex UI with minimum queries per page. Caching is no longer
+ a necessity. Your code will be as you would have an SQL expert design all your database queries for you. And
+ yet developers are not exposed to the dangers of raw SQL.</p>
+
+ <h4>Prototype, that scaled</h4>
+ <p>Often the code which used to put together a quick prototype software can't be used for a full-featured,
+ commercial purposes. Agile Toolkit makes it possible. With Agile Toolkit you can develop quickly when
+ you need results quickly. You can polish your application when your budget and time permits.</p>
+
+ </div>
+ <div class="g-6">
+
+ <h4>Security from Human Error</h4>
+ <p>Developers make mistakes. For many web projects simple developers mistake became source of
+ major corporate crisis.</p>
+
+ <p>It is in our nature to make mistakes. That's why Agile Toolkit has precautions. Your Web
+ Software will consist of Business and Presentation logic. Business logic relies on Object-Oriented
+ Models which introduce physical boundaries for the presentation logic.</p>
+
+ <p>For example, if "Order" model has a built-in condition preventing it from loading records
+ owned by other users, not a single Widget or UI element will be able to access, change or
+ delete restricted records.</p>
</div>
- <div class="g-6">
- <h3>Goal-focused development</h3>
- <p>Need results fast? Focus on your goals rather than technical implementation. You can always come and re-vise things.
- With Agile Toolkit the maintainability of your code will be on a completely new level
- </p>
-
- <h4>Example using "Employee" model</h4>
-
-<?Execute?>
-$form=$page->add('MVCForm');
-$form->js(true)->addClass('ignore_changes');
-$grid=$page->add('MVCGrid');$grid->addPaginator(5)->setModel('Employee',array('name','salary'));
-$grid->dq->order('id',true);$grid->addColumn('delete','delete');
-$form->setModel('Employee',array('name','salary'));
-$form->addSubmit('Add');
-$form->onSubmit(function($form) use($grid){
- $form->update();
- $form->js(null,array(
- $grid->js()->reload(),
- $form->getElement('name')->js()->val('')->focus(),
- $form->getElement('salary')->js()->val(''),
- ))->univ()
- ->successMessage('Employee added')
- ->execute();
-});
-<?/?>
- </div>
+ <h4>Stability</h4>
+ <p>We know two things too well: 1) changing your code introduces bugs. 2) you will have to change your code.</p>
+ <p> With Agile Toolkit you have
+ much less chance to unintentionally break your application. You can now safely follow principles of Extreme
+ Programming or other Agile Methodology.</p>
+ <a style="float: left" href="<?page?>intro<?/?>" target="_blank">Learn more</a>
</div>
@@ -1,19 +1,19 @@
+<h3>Step 1: Revolutionary Approach to Web User Interface</h3>
<div class="g-row">
- <div class="g-6">
- <h3>Graphics User Interface for The Web</h3>
- <p>
- Agile Toolkit implements an object-oriented approach to building Web User Interface. Inspired by the Desktop Graphical
- User Interfaces, everything in Agile Toolkit is an object with ability to "render" into HTML.</p>
+ <div class="g-6">
- <p>
- Powerful Object-Oriented architecture enables you to efficiently use existing View classes as-is or
- extend them to customize.</p>
+ <p>Agile Toolkit comes with a powerful HTML-based, templates and many UI widgets you can use such as Forms, Buttons,
+ Sliders, Menus. No other PHP Framework comes with User Interface as a standard. Graphical user interfaces changed
+ desktop industry almost 30 years ago. Agile Toolkit revolutionize development of Web Applications today.</p>
- <p>
- Agile Toolkit allows you to specify a custom template on the "object" level. It will allow some of the generic
- object look fresh, create complex layouts on your pages or create re-usable HTML-snippets.</p>
+ <h4>Backend, Front-end, Word-press plugin...</h4>
+ <p>Agile Toolkit can be integrated with anything. Agile Toolkit is as big as you want it to be. You can adopt
+ Agile Toolkit fully for your new application, or just use it to develop a single page.</p>
-<h4>What can you do in 8 lines of ONLY-PHP code!</h4>
+
+ <h4>Powerful AJAX Integration</h4>
+ <p>Agile Toolkit is a first framework, which offers a tight and flexible integration between JavaScript, AJAX and
+ PHP. Example below is programmed using only PHP code.
<?Execute?>
$view=$page->add('View');
@@ -27,49 +27,48 @@
}
<?/?>
- </div>
- <div class="g-6">
- <h3>Standard Elements</h3>
+ </div>
+ <div class="g-6">
+ <h4>Widgets and Templates</h4>
-<div class="g-row">
- <div class="g-4">
- <p>
- Agile Toolkit ships with dozens of standard components you can use out-of-the-box. These include
- Buttons, Forms, Lists, Grids, Trees, Frames. Some are further enhanced with jQuery UI Widgets such as sliders,
- drag&amp;drop, lasso-selection. If you miss one, it's a snap to create your own class.
+ <div class="g-row">
+ <div class="g-4">
+ <p>Building re-usable widgets and controls is extremely easy with Agile Toolkit. Not only you will be able to re-use them
+ in your new projects but you can bundle them with custom templates, javascript and powerful features. Widget will automatically
+ adopt local theme and UI modifications.
</p>
-</div> <div class="g-2">
+ </div> <div class="g-2">
-<div style="float: right; border: 1px dashed gray; padding: 4px">
-<?Execute?>
-$page->add('Alex');
-<?/?>
- <center>"Alex" View Class</center>
- </div>
+ <div style="float: right; border: 1px dashed gray; padding: 4px">
+ <?Execute?>
+ $page->add('Alex');
+ <?/?>
+ <center>"Alex" View Class</center>
+ </div>
+ </div>
+ </div>
+ <h4>User Interface Consistency</h4>
+ <div class="g-row">
+ <div class="g-4">
+ <p>If you have a long project ahead of you, you probably think that relying on Models/MVC/ORM principles will help your
+ business logic become flexible. We extend this principle to the User Interface. Don't repeat yourself when writing markup
+ for a button. Design your User Interface once and use it forewer.</p>
+ </div> <div class="g-2">
+ <?Execute?>
+ $b=$page->add('Frame')->setTitle('Sample');
+ $b->add('Icon')->set('fun-happy');
+ $b->add('Text')->set('Text Label');
+ <?/?>
+ <br/>
+ <?Execute?>
+ // $page->add('Button')->set('Continue »')->setStyle('float','right');
+ <?/?>
+ <a style="float: right" href="<?page?>intro<?/?>">Learn More...</a>
</div></div>
-<h3>View inside View</h3>
-<div class="g-row">
- <div class="g-4">
-<p>Agile Toolkit makes it possible to add View into any other View and position it anywhere. "Icon" is a
-stand-alone class and has no relations with "Frame", yet one can be placed into another with just 3 lines of PHP code. Real-time rendered result:</p>
-</div> <div class="g-2">
-
-<?Execute?>
-$b=$page->add('Frame')->setTitle('Sample');
-$b->add('Icon')->set('fun-happy');
-$b->add('Text')->set('Text Label');
-<?/?>
- <br/>
-<?Execute?>
-// $page->add('Button')->set('Continue »')->setStyle('float','right');
-<?/?>
-<a style="float: right" href="<?page?>intro<?/?>" target="_blank">More Examples</a>
- </div></div>
-
- </div>
+ </div>
</div>
@@ -4,7 +4,7 @@
<h1>Chaining method calls</h1>
<p>There are no procedures in PHP, only functions. Functions can return something. When return of object method is not
obvious, Agile Toolkit methods return reference of the same object - '$this'. These methods are called "chainable", because
-you can use return of one object to call other method.</p>
+you can use return of one method to call other method.</p>
<p>This approach is used to improve code readability. You don't need temporary variables. Below is the example of method chaining:</p>
@@ -8,18 +8,22 @@
you'll want to mess with things on the low level of PHP again. It makes a great deal of sense to skip some low-level stuff
and get real results quick.</p>
-<p>It seems that some PHP frameworks require their developers to know web development process already. <b>You do not need to
- learn how to develop web applications WITHOUT frameworks before learning Agile Toolkit</b>. If you never made a web application,
-Agile Toolkit is a great way to build your first one.</p>
+<p>I will make one thing clear. Agile Toolkit is aimed at "developers", guys who write application code inside a proper text editor.
+If you prefer to use drag-and-drop interface to build your application, Agile Toolkit might not be ideal for you. It is however
+a real treat to those who strive for power and control over their software.</p>
+
+<p>Some other frameworks will expect developers to be well familiar with Web Development already. This book nor Agile Toolkit
+does not require that. You may be a developer coming from non-web development platform and would still be confident with
+Agile Toolkit and be able to grasp it.</p>
<h2>Learn to program</h2>
-<p>Take a programming course and learn how to use variables, iterations, loops and ethods. You does not necesserily have to learn
-programming in PHP, it can be other language. The important skills you will need is ability to plan your code and refactor it.</p>
+<p>If you have been "mashing" and only slightly immersed yourself into the development, you will need to be comfortable with it.
+I have seen wordpress / drupal developers who did not know how to iterate through an array.</p>
-<h2>Learn PHP</h2>
-<p>You do need to know about PHP expressions, variables, control structures and logical operators. So if you don't, <a
- href="http://www.php.net/manual/en/langref.php">start reading the PHP language reference</a>. You might want to skip the features
-which Agile Toolkit does not use (I have mentioned them in the previous section)</p>
+<p>It is a good time to strengthen your core concepts of programming before going forward. If you are coming from a different
+programming language, you should quickly check PHP language features before moving on. Look through <a
+ href="http://www.php.net/manual/en/langref.php">PHP language reference</a> to make sure you become familiar with language
+constructs. </p>
<h2>Object-Oriented Programming Training</h2>
<p>Apart from the syntax, you need to understand how objects work. Look for some on-line documentation on Object-Oriented Programming
@@ -29,10 +33,9 @@
Toolkit.</p>
<h2>Understanding Performance</h2>
-<p>There are many ways how fast programming language, framework or library can be slowed down by improper coding practices. Web
-applications are especially sensitive to poor coding skills.</p>
-
-<p>In this book I will continue to point out important points which will help you develop high-performance and scalable applications.</p>
+<p>If you think that speed of your application depends on the framework you're choosing then you do not fully understand the
+measurement of performance and concepts of scalability. This book will introduce to the theoretical performance and how
+use of a toolkit can improve your developer performance with minimum overheads of application performance.</p>
<h2>Guidelines for naming methods</h2>
<p>Apart from what was explained above, there are other guidelines and principles you should follow when creating methods:</p>
Oops, something went wrong.

0 comments on commit de9efb5

Please sign in to comment.