This doesn't help you solve this problem, but just wanted to tell you that
in PHP 5 all objects are passed by reference, so the ampersand in the
round_datetime function is redundant.
-Matt
On Fri, Aug 15, 2008 at 1:13 PM, Jake McGraw <[EMAIL PROTECTED]> wrote:
> Everyone, sorry to bother you with this, turns out I've been doing too
> much programming in true functional languages, which PHP is not, and I
> had some code which I thought was ok, but some how combined with a
> call to json_decode caused PHP to crash. I was basically doing
> something like:
>
> function round_datetime(Zend_Date &$datetime) {
> $tmp = clone $datetime;
> $tmp->set(0, Zend_Date::SECOND);
> $tmp->set($tmp->get(Zend_Date::MINUTE)<30?0:30, Zend_Date::MINUTE);
> return $tmp;
> }
>
> To zero-out the seconds portion of a Zend_Date object and fix the
> minutes to 0 or 30. I would then do something like:
>
> public function fooAction() {
>
> $now = new Zend_Date();
> $min = round_datetime($now)->get('yyyy-MM-dd');
>
> // ...
> // Get JSON from API server using generated time above
> // ...
>
> json_decode($jsonString);
> }
>
> Now, since this worked without the json_decode call, I was under the
> impression that the error was with json_decode, not my weird datetime
> function. Well, I have removed the datetime function, and now
> everything works. All of this has been very weird, because I don't see
> how round_datetime + json_decode interacted in a way to crash PHP.
> Perhaps some Zend people could provide a perspective?
>
> Thanks for all help.
>
> - jake
>
>
>
> On Fri, Aug 15, 2008 at 3:51 PM, Jake McGraw <[EMAIL PROTECTED]> wrote:
> > Terre:
> >
> > Thanks for the effort, but I have also been able to set up a basic
> > Controller / Layout / View and get my code to work. There still
> > appears to be some kind of intractable issue going on here that has to
> > do with json_decode and Zend MVC will my existing code base. I'm going
> > to try to refactor my code, and get this working. I'll report back my
> > findings.
> >
> > - jake
> >
> > On Fri, Aug 15, 2008 at 2:37 PM, Terre Porter
> > <[EMAIL PROTECTED]> wrote:
> >>
> >> I put together a basic test project.
> >>
> >> Used the layout and the view tpl you provided.
> >>
> >> I've got this as my controller function.
> >>
> >> public function indexAction()
> >> {
> >> $jsonData = '--string from text file--';
> >> $result = json_decode($jsonData);
> >> var_dump($result);
> >> }
> >>
> >> I get a "hello world" and a var dump of the json data.
> >>
> >> What needs to happen to the $results data for it to be used on the
> >> layout/view?
> >>
> >> Terre
> >>
> >> -----Original Message-----
> >> From: Jake McGraw [mailto:[EMAIL PROTECTED]
> >> Sent: Friday, August 15, 2008 1:07 PM
> >> To: Terre Porter; fw-general
> >> Subject: Re: [fw-general] Zend_Json::decode in Controller causing Blank
> >> Screen of Death
> >>
> >> On Fri, Aug 15, 2008 at 12:31 PM, Terre Porter
> >> <[EMAIL PROTECTED]> wrote:
> >>>
> >>> I've been following this a little.
> >>>
> >>> If I understand this right...
> >>>
> >>> The json decode works if you dump the var but not if you allow the
> >>> page to run through the view.
> >>>
> >>> What happens in the view?
> >>>
> >>> You mention these :
> >>>
> >>> -- sets HTML head
> >>> -- spits out contents
> >>
> >> My Layout:
> >>
> >> <?php
> >>
> >> // <meta>
> >> $this->headMeta()
> >> ->appendHttpEquiv('Content-Type', 'text/html;
> >> charset=UTF-8')
> >> ->appendHttpEquiv('Content-Language', 'en-US');
> >>
> >> $this->headTitle()
> >> ->headTitle('My Page', 'APPEND');
> >>
> >> echo $this->doctype('XHTML1_STRICT');
> >> ?>
> >>
> >> <html xmlns="http://www.w3.org/1999/xhtml">
> >> <head>
> >> <?= $this->headMeta() ?>
> >>
> >> <?= $this->headTitle() ?>
> >>
> >> </head>
> >> <body>
> >> <?= $this->layout()->content ?>
> >>
> >> </body>
> >> </html>
> >>
> >> My View:
> >> <h1>HELLO WORLD</h1>
> >>
> >> In the course of debugging this, I've tried to take out all of the
> possible
> >> bugs, I've narrowed it down to one thing: attempting to json_decode a
> >> perfectly valid JSON string, which I've attached, prior to
> preDispatch(),
> >> View, Layout rendering causes blank screen.
> >>
> >> - jake
> >>
> >>>
> >>> Does the view do anything to the data? i.e. expect a exact array key
> >>> to exist?
> >>>
> >>> Just some thoughts
> >>> Terre
> >>>
> >>>
> >>> -----Original Message-----
> >>> From: Jake McGraw [mailto:[EMAIL PROTECTED]
> >>> Sent: Friday, August 15, 2008 12:13 PM
> >>> To: [email protected]
> >>> Subject: Re: [fw-general] Zend_Json::decode in Controller causing
> >>> Blank Screen of Death
> >>>
> >>>> Comment out the above line and see what happens -- this is what the
> >>>> previous comment was getting at.
> >>>>
> >>>
> >>> Still not working, commented out line, restarted apache, same issue...
> >>> I'm not sure that this is related to json/xdebug, as
> >>> Zend_Json::decode/json_decode both operate correctly with the same
> >>> JSON string outside of the Zend MVC, it is only when I use any of the
> >>> following:
> >>>
> >>> Zend_Json::decode($jsonString);
> >>>
> >>> Zend_Json::$useBuiltinEncoderDecoder = TRUE
> >>> Zend_Json::decode($jsonString);
> >>>
> >>> json_decode($jsonString, TRUE);
> >>>
> >>> and then allow Layout, View to render that I get the blank screen.
> >>> Note, I'm not actually doing anything with the resulting PHP array
> >>> from the decoding. I'm not passing it to the view, which simply sets
> >>> the HTML head and spits out the content. I'm just attempting to dump
> it.
> >>>
> >>> Again, thanks for the help!
> >>>
> >>> - jake
> >>>
> >>>>
> >>>>> Again, nothing in error reporting, logging, etc. Just a blank screen.
> >>>>> Also, this works fine (same JSON) outside of Zend_Controller_Action.
> >>>>>
> >>>>> > -Matt
> >>>>> >
> >>>>> > On Fri, Aug 15, 2008 at 8:20 AM, Jake McGraw <[EMAIL PROTECTED]>
> >>> wrote:
> >>>>> >>
> >>>>> >> I've spent the last two days struggling with this error:
> >>>>> >>
> >>>>> >> We've been utilizing REST-ful JSON server for a couple of months
> >>>>> >> now
> >>> to host our data api (it's written using Zend Framework). Our client
> >>> apps access this API, and decode the JSON. Yesterday, one of our
> >>> client apps stopped working, generating no errors, no ouput, just a
> >>> blank screen. After commenting out the majority of the code, we found
> >>> the following code was causing the grief:
> >>>>> >>
> >>>>> >> <?php
> >>>>> >>
> >>>>> >> // BaseController extends Zend_Controller_Action class
> >>>>> >> CustomController extends BaseController {
> >>>>> >>
> >>>>> >> public function someAction() {
> >>>>> >>
> >>>>> >> $result = $this->api->get('resource', array('field1' =>
> >>>>> >> 'value1'));
> >>>>> >>
> >>>>> >> $result =
> >>>>> >> Zend_Json::decode($result->getResponse()->getBody());
> >>>>> >>
> >>>>> >> var_dump($result);
> >>>>> >>
> >>>>> >> // exit;
> >>>>> >> }
> >>>>> >>
> >>>>> >> }
> >>>>> >>
> >>>>> >> Now, we only get the blank screen when we allow our dispatcher to
> >>> render our Zend_Layout, Zend_View AFTER using Zend_Json::decode, all
> >>> the following logic steps work fine:
> >>>>> >>
> >>>>> >> - Uncomment exit, prevent Layout, View rendering
> >>>>> >> var_dump($result); exit;
> >>>>> >>
> >>>>> >> - Check body for valid JSON (everything OK in JSON Lint)
> >>>>> >> - Layout, View render correctly
> >>>>> >> var_dump($result->getResponse()->getBody());
> >>>>> >>
> >>>>> >> - Try another JSON string
> >>>>> >> - Layout, View render correctly
> >>>>> >> var_dump(Zend_Json::decode('[{"foo":"bar"}]'));
> >>>>> >>
> >>>>> >> The JSON looks something like this:
> >>>>> >>
> >>>>> >> [
> >>>>> >> {
> >>>>> >> "cm_broadcast_type": "National Broadcast Networks",
> >>>>> >> "id": "12659575",
> >>>>> >> "station_id": "12336",
> >>>>> >> "program_id": "EP010501290006",
> >>>>> >> "start_time": "20080814000000",
> >>>>> >> "end_time": "20080814010000",
> >>>>> >> "cc": "Y",
> >>>>> >> "title": "Greatest American Dog"
> >>>>> >> },
> >>>>> >> {
> >>>>> >> "cm_broadcast_type": "National Broadcast Networks",
> >>>>> >> "id": "11469048",
> >>>>> >> "station_id": "12336",
> >>>>> >> "program_id": "EP007537910036",
> >>>>> >> "start_time": "20080814010000",
> >>>>> >> "end_time": "20080814020000",
> >>>>> >> "cc": "Y",
> >>>>> >> "title": "Criminal Minds"
> >>>>> >> },
> >>>>> >> ... Continue ...
> >>>>> >> ]
> >>>>> >>
> >>>>> >> So, as I've said, the problem only occurs when we allow the
> >>>>> >> dispatcher
> >>> to continue rendering Layout, View after using Zend_Json::decode, any
> >>> help would be MUCH appreciated.
> >>>>> >>
> >>>>> >> - jake
> >>>>>
> >>>>
> >>>> --
> >>>> Matthew Weier O'Phinney
> >>>> Software Architect | [EMAIL PROTECTED]
> >>>> Zend Framework | http://framework.zend.com/
> >>>>
> >>>
> >>>
> >>
> >>
> >
>