Skip to content
This repository has been archived by the owner on Nov 26, 2022. It is now read-only.

Commit

Permalink
enhancements
Browse files Browse the repository at this point in the history
  • Loading branch information
Romans Malinovskis committed May 22, 2012
1 parent a5622f4 commit de9efb5
Show file tree
Hide file tree
Showing 10 changed files with 213 additions and 200 deletions.
2 changes: 1 addition & 1 deletion lib/Sitemap.php
Original file line number Diff line number Diff line change
Expand Up @@ -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',
),
Expand Down
62 changes: 29 additions & 33 deletions templates/jui/page/in/jquery.html
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -32,21 +35,21 @@ <h4>The Math Problem</h4>
}
<?/?>
<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")
Expand All @@ -57,21 +60,14 @@ <h3>Everything just works!</h3>
->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();
-->
96 changes: 39 additions & 57 deletions templates/jui/page/in/models.html
Original file line number Diff line number Diff line change
@@ -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>
95 changes: 47 additions & 48 deletions templates/jui/page/in/ui.html
Original file line number Diff line number Diff line change
@@ -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');
Expand All @@ -27,49 +27,48 @@ <h4>What can you do in 8 lines of ONLY-PHP code!</h4>
}
<?/?>

</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>
2 changes: 1 addition & 1 deletion templates/jui/page/learn/understand/base/chains.html
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down
29 changes: 16 additions & 13 deletions templates/jui/page/learn/understand/base/oop.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,22 @@ <h1>Knowledge Requirements</h1>
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
Expand All @@ -29,10 +33,9 @@ <h2>Object-Oriented Programming Training</h2>
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>
Expand Down
Loading

0 comments on commit de9efb5

Please sign in to comment.