PHP Architect blog PHP, MySQL, ZF, Python, Linux, Mac, C++, Java, Flex, Air, ActionScript & apps development.

3Apr/090

Smart Debugging with Zend Framework

Sometimes your clients report to you Errors you have never experienced while testing your web application, or broken links, or some errors that occurs under some scenarios that you didn't apply.

There is a smart trick i do in the ErrorController in my Zend Framework applications, i make the application send me the same error it displays to the user direct to my email, so i can know under what circumstances and conditions that error occurred.

The sweet thing is that when google bot or any search engine crawls my websites, they find some errors also, errors that i and the client didn't reach, so i get the chance to fix it before any body see it.

I also sometimes disable viewing the error message and display "Some errors has occurred and the support has been notified, sorry for the inconvenience" and provide a link to go to Homepage for example.

Below is the code i have in my ErrorController :

    $errors = $this->_getParam('error_handler');
        switch ($errors->type) {
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                // 404 error -- controller or action not found                
                $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
                $this->view->title = 'HTTP/1.1 404 Not Found';
                break;
            default:
                // application error; display error page, but don't change                
                // status code
                $this->view->title = 'Application Error';
                break;
        }
        $body = 'HTTP/1.1 404 Not Found' . "<br>";
        $body .= $errors->exception . "<br>";
        $body .= "IP Address: " . $_SERVER['REMOTE_ADDR'] . "<br>";
        $body .= "User Agent: " . $_SERVER['HTTP_USER_AGENT'] . "<br>";
        $body .= "Lang: " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "<br>";
        $body .= "Referer Link: " . $_SERVER['HTTP_REFERER'] . "<br>";
        $body .= "Requested URL" . $_SERVER['REQUEST_URI'] . "<br>";
 
 
 
		$mail = new Zend_Mail();
		$mail->setBodyHtml($body);
		$mail->setFrom('support@somesite.com', 'Website Support');
		$mail->addTo("ahmed.abdelaliem@mysite.com.com", "Ahmed Abdel-ALiem");
		$mail->setSubject('Sitename Error Occurred');
		$mail->send();
 
 
 
        $this->view->message = $errors->exception;
  • Share/Bookmark
3Feb/092

ZendCasts – Free Zend Framework Screencasts

A really good Zend Framework Resource that has been posted in the ZF mailing lists couple of days ago.

very usefull

URL : www.ZendCasts.com

  • Share/Bookmark
12Jan/091

Render Nothing in Zend Framework

This is useful if u want to have the output without rendering a view or the layout, like in ajax or developing we services

to do that you need to call the following 2 methods in your Action :

$this->_helper->viewRenderer->setNoRender(); // Disable the viewscript
$this->_helper->layout->disableLayout();  // Disable the layout
  • Share/Bookmark
2Jan/091

Zend Framework Free Book : Surviving The Deep End

Hey folks,
today Padriac Brady has released a new Zend Framework Book,

About the author :
http://www.survivethedeepend.com/zendframeworkbook/en/1.0/introduction#zfbook.introduction.me

To read the book :

http://www.survivethedeepend.com/zendframeworkbook/en/1.0

About the book (quoted from the book):

Zend Framework: Surviving The Deep End is written in the form of a detailed tutorial following a step by step approach to building a real life application. Topics are grouped where it makes sense and there will be continual references to earlier chapters which serves to reinforce what you're learning as you read. The book was designed to bring together elements of the Reference Guide, the growing body of community knowledge and my own personal experience so developers can see the bigger picture of developing a real application with the Zend Framework.No comments

To my mind that's always been the framework's main problem since the Reference Guide adds little beyond explaining each framework component in total isolation. It doesn't offer a development approach, ways of thinking or a list of advanced topics which combine components. You should note though that this book is not a replacement for the Zend Framework Reference Guide. It's assumed you can do some independent reading of the Reference Guide. The Guide is free, detailed, and reasonably easy to search. This book is a complement to it, not a replacement.No comments

The book also includes the full source code of the application within the text, and may repeat it several times to highlight new changes I am making. I understand that pages of source code can sometimes be frustrating but it does enforce clarity and I value clarity a great deal. For simplicity the full finalised source code of each chapter is available as a separate internet download.No comments

I will over time refer to several external libraries, other than the Zend Framework, which you are expected to install. These will include PEAR, Blueprint CSS Framework, jQuery, HTMLPurifier and PHPUnit. I know from experience this can be unpopular with some people but I assure you that their installation will be covered in detail and is quite straightforward even for beginners. You should bear in mind a real life application will require numerous external libraries!No comments

Finally, note that this book assumes a basic working knowledge of PHP 5, SQL, and Object Oriented Programming (OOP). These are necessary skills if you intend learning the Zend Framework but will not be covered by this book in detail. Since PHP is so simple to learn though, I don't doubt you can find countless resources online to get you started down the road towards PHP Guru status.

----------------------

enjoy reading ;)

To read the book :

http://www.survivethedeepend.com/zendframeworkbook/en/1.0

  • Share/Bookmark
20Nov/081

Appcelerator :: Building RIA Apps and Use Cases with ease

Yesterday i was browsing Zend Framework Webinars, and i stopped by the title :

Get "Rich" Quick : Building Ajax-based RIAs with the Zend Framework and Appcelerator

i didn't hear about the Appcelerator thing before, but the title was really interesting as i use Zend framework extensively and it is a great idea to add some interactivity and UI to my apps.

after watching the webinars, i really liked the idea of being able to build the full prototype and have it working with no server side code, and then in the development phase with some slight changes to the prototype, it becomes the working front end interacting with the server side code with no problems @ all.

i went to try.appcelerator.org and gave it a try on the fly, that got me more interested. so i downloaded the sdk installer for MAC and installed it, the installation was at ease, even creating the projects and testing.

Appcelerator supports what we call "technology driven agile development" and we call that process Interactive Use Cases.

  • Share/Bookmark
31Jul/080

Zend Framework, Flex & PHP – Best Practice Cautions

Hey guys,

recently me and my flex developer colleague had a weird problem while exchanging data from zend framework to flex as web services using json.

well, 1st caution :

<?php echo "Json = $encoded_json_data"; ?>

don't ever use a closing tag " ?> " in your controllers or classes, as it will result in new line in the output json data, which will make flex not able to recognize it correctly.

2nd caution :

<?php echo "Json = $encoded_json_data"; ?>

when u echo output from php don't leave space between the variable and the equal "=" sign and also between the equal "=" sign and the value.
to be clear :
example 1 :

This won't work as flex will not recognize a value for the variable Json.
example 2 :

This will work because we removed the spaces.

hope u don't fall in this trap as we did.
& enjoy ;)

  • Share/Bookmark
31Jul/080

Adobe to contribute AMF support to Zend Framework

Hey folks,
i have read this great news yesterday, that Adobe has made a proposal for an AMF (Action Message Format) component in Zend Framework.
what a great addition to the strong & superior framework.
this will facilitate my work a lot with my colleagues here that works with Flex, we have been developing some Air applications, and as a solution of the interaction between Flex & PHP we used web services to exchange the data in Json format between us, it works fine, but having the options of AMF will make it more powerful and smooth.
long live ZF, long live flex ;)

here is the link for the news i got :
http://andigutmans.blogspot.com/2008/07/adobe-to-contribute-amf-support-to-zend.html

and here is the link for the proposal :
http://framework.zend.com/wiki/display/ZFPROP/Zend_Amf

Enjoy ;)

  • Share/Bookmark
26Jul/082

Google Calendar SMS Reminders Active in Egypt

Well, as u can understand from the subject, now the sms notifications of google calendar works with egyptian providers, i tried with vodafone and mobinil and it works smoothly.

steps are easy :
1- go to www.gmail.com and open your mail account.
2- click on the calendar link on the top left of the page.
3- in the calendar page click on settings on the top right of the page.
4- click on mobile setup tab.
5- enter your mobile number and then you will recieve a confirmation code,
6- enter the confirmation code and verify.
7- you will be redirected to notifications page, enable all SMS notifications, and setup default reminders for each event, you can setup up to 5 reminders.

you are done, and you can setup repeated events, for example i setup a daily event to wake me up by sms every morning.

another trick if you want to send sms to another person and you have no credit , just enter a new event, with the title

  • Share/Bookmark