/    Sign up×
Community /Pin to ProfileBookmark

How I learned to use ATK to create PHP applications super fast!

Jorge Garifuna
November 15, 2005

[B]How I learned to use ATK to create PHP applications super fast[/B]

First and most importantly, I must commend the creator of ATK, Ivo, and his team for creating a fantastic framework for PHP development.

I you are wondering what ATK is, then you may want to make yourself a follow up question: do you want to create web applications super fast? If the answer to this follow up question is yes, then ATK might be what you are looking for.

When I first made my decision to port all my applications from PERL to PHP, I started looking for solutions that would allow me to work the way I’m accustomed to working in PERL, so I could get my job done faster.

To accelerate the application development process in PERL, I wrote a mini-engine that would generate the entire code-set of a database driven application, if the table information was provided. After I started hitting walls in PERL, I realized that I could do more web-related applications with PHP and my hunt began for the right solution.

I tried several packages from phpclasses.org but nothing seemed to satisfy my needs to create applications that I could use in a production environment. I first learned about ATK in May 2005 from a post at Slashdot.org. I checked [url]http://www.achievo.org/atk[/url], tried the demos and bookmarked the page on May 19, 2005.

At first I was not very impressed with what I had seen in the demos. It wasn’t until later that I realized that the demos, in my opinion, do not do justice to the power of ATK. At first hand, the demos look and navigate like anything you would expect on an application, but when you look at the source code and look back at the interface, you get to see the minimal code needed to create such smooth functionality.

For what ATK could do, I thought that the learning curve was too much and at the time I just wanted something that would get the job done. In either case, I put ATK in the back burner and continued my search for the next best thing. I looked just about everywhere that I could have access to. Tried customizing a few solutions here and there, but it would take me a very long time to implement the goodies that I wanted to be productive in a short amount of time.

After exhausting all my options, I decided to go into the pages that I had bookmarked in the past few months and give ATK a second look. By then it was, October 2005, and I was convinced that there was nothing else out there better than ATK to develop web-applications relatively fast. Although not required, I gave my donation for the first time ever to an open source project.

To lessen my fear of what I thought was going to have a huge learning curve, I resisted coding right away and instead, decided to read guides provided on the documentation section of the site located at:

[url]http://www.achievo.org/development/documentation[/url]

I downloaded ATK from:

[url]http://www.achievo.org/atk/download[/url]

and started reading and practicing the examples provided in the guides in the sequence shown below:

Developing Achievo Extensions – Part 1 (Basics)
[url]http://www.achievo.org/uploaded_files/developing_achievo_extensions_1.pdf[/url]

Developing Achievo Extensions – Part 2 (Advanced)
[url]http://www.achievo.org/uploaded_files/developing_achievo_extensions_2.pdf[/url]

ATK Flag Reference
[url]http://www.achievo.org/development/documentation/flags[/url]

After reading reference to part 3 of the guide, I signed up for the forum

[url]http://www.achievo.org/forum[/url]

and posted a quick message asking when Part 3 of the guide was coming out. Apparently it had been created already but it was not shown on the documentation page. Ivo, one of the creators of ATK responded to my message pointing me to part 3 of the guide located in the following location:

Developing Achievo Extensions, Part 3 (Advanced)
[url]http://www.achievo.org/blog/uploads/DevelopingAchievoExtensionsPart3advanced.pdf[/url]

After reading and practicing the examples on the guides I started creating my own application. I started by creating basic proposal application, which was composed of four parts:
– The company information of the user
– The customer information
– The job location information (a customer could have multiple job locations)
– The proposal information

After creating this application, I started seen the power of ATK. I had the application up and running within a day(about 4 hours). On the second day I enhanced the application and presented it to the potential user. During the presentation the user wanted a small addition to the interface, which I was able to add in 30 seconds.

From creating my first application I learned a great deal about ATK. I managed to squeeze the following into my proposal application:
– Help content specific to each section
– PDF creation of the proposals for printing using FPDF (not part of ATK but easy to integrate)
– Show the proposal information when the user first logon instead of the default page
– Upload files
– Create attractive content with the FCK editor
– Add additional text information at the bottom of the page
– Associate proposals to customers and job locations through relationships
– Duplicate(copy) records with the click of one button
– Make mandatory fields through a simple flag and have them validated automatically by ATK
– Make searchable fields through a simple flag
– Ability to select/deselect multiple records with a simple flag
– Organize fields within tabs

I found that ATK is very strong in automating the navigation of records of a back-end web application. Initially I posted a lot of questions in the forum ([url]http://www.achievo.org/forum[/url]) and still do today as I want to learn and apply more of the framework. I browse the forum almost daily and occasionally read the Wiki page located at:

[url]http://atk.stootles.com/tiki-index.php[/url]

I learned one little trick from the Wiki page, which is how to reorder your fields by just adding one extra parameter to your code.

Best of all, ATK, allows me to quickly create an application based on a given database table information, just like I’m accustomed to in PERL. By using the ATK component called, atkMetaNode, you can have ATK create the entire code and navigation for a specific table. This was the secret to me adding an additional field to the proposal application and have it displayed on the interface within 30 seconds!

Once I had a feel for what I could do with ATK, I continued to want more of it. I found the How-To pages to be very useful as well. You can find this page at:

[url]http://www.achievo.org/atk/docs/howto[/url]

In there you will see several Howtos, one of them being:

Using the atkMetaNode
[url]http://www.achievo.org/atk/docs/howto/atkmetanode[/url]

Chances are that you are going to have many questions when you start diving into ATK. The overall content of the documentation is great, but the organization of it is constantly improving. You can get a great deal of your questions answered in the forum:

[url]http://www.achievo.org/forum[/url]

Kind regards and I will see you at the ATK forum,

Jorge Garifuna
Professional Web Developer

to post a comment
PHP

1 Comments(s)

Copy linkTweet thisAlerts:
@SpectreReturnsNov 16.2005 — Major advertising whore?
×

Success!

Help @jgarifuna spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.20,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...