Webnet668
(Benkuhl)
November 5, 2012, 8:09pm
1
I’m new to YII and I’ve been working on a ecommerce store.
I followed the guide here: http://www.yiiframework.com/doc/guide/1.1/en/basics.namespace when setting up namespaces in Yii. My application is now successfully executing the controller of a sub module. So I have…
protected
/modules
/store
/modules
/mySubModule
/controllers
/TemplateController.php
The right URL will successfully execute TemplateController, so I know things are setup correctly. However the "$this->render()" throws a "Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 65488 bytes) in C:\Users\[user]\htdocs\myapp\yii-1.1.12\base\CModule.php on line 530" error.
<?php
namespace mySubModuleControllers;
use Yii;
class ContainerController extends \mySubModuleComponents\mySubModuleController {
public function actionIndex() {
$this->actionChooseContainer();
}
public function actionChoose () {
$this->includeCss('chooseContainer');
$this->render('choose', array(
'containers' => \mySubModuleModels\Container::model()->findAll() //returns 5 rows
));
}
}
Here’s my view…
<?php
/* @var $this ContainerController */
?>
<h3>Choose your container</h3>
<ul id='containerList' class='clearfix'>
<?php
foreach ($containers as $container) {
echo "
<li>
<a href='".$this->createUrl('/store/instaLabel/template/upload/container/'.$container->id.'/')."'>
<img src='".Yii::app()->request->baseUrl."/images/containers/".$container->id.".png' alt='".$container->name."'/>
<label>".$container->name."</label>
<table class='stats'>
<tr>
<td class='stat'>Label size:</td>
<td class='value'>21\" x 53\"</td>
</tr>
</table>
</a>
</li>";
}
?>
</ul>
<?php Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/themes/'.Yii::app()->theme->name.'/chooseContainer.css'); ?>
Here’s what I’ve done…
Commented out the call to $this->view(), this made the error go away
Commented out the contents of the view, didn’t fix it
Commented out the “states” parameter (which only pulls 51 rows) being passed to the view, didn’t fix it
Increased memory allowance for this script to 1GB, didn’t fix it, still maxed out
I’m at a total loss as to what I should do to help me figure out what the cause could be. I’m hoping someone more experienced with YII can provide some assistance.
robregonm
(Ricobregon)
November 5, 2012, 10:24pm
2
This type errors are usually related to big variables, so you should try commenting some variables the are being to the view…
Also it would be useful to have the "chowckout" view code, in order to check it out if maybe something is not being correctly implemented.
Best regards.
Webnet668
(Benkuhl)
November 6, 2012, 1:12pm
3
I’m going to play with it more when I get to work today. I did verify yesterday that this isn’t just happening on this checkout page, but also on another page that is VERY simple.
Update: I’ve updated my original post with a view that is simpler than the checkout view. There’s nothing extravagant here.
Webnet668
(Benkuhl)
November 6, 2012, 4:01pm
4
One of our devs here must’ve changed something in the LAMP stack we run on Windows. I know he added xDebug, but not sure if he did anything else.
I’m now receiving the error:
Fatal error: Maximum function nesting level of '100' reached, aborting! in C:\Users\bkuhl\htdocs\instaLabel\yii-1.1.12\base\CModule.php on line 272
Call Stack
# Time Memory Function Location
1 0.0007 140800 {main}( ) ..\index.php:0
2 0.0312 1144184 CApplication->run( ) ..\index.php:15
3 0.0313 1144280 CWebApplication->processRequest( ) ..\CApplication.php:162
4 0.0380 1269208 CWebApplication->runController( ) ..\CWebApplication.php:142
5 0.0547 1754056 CController->run( ) ..\CWebApplication.php:283
6 0.0557 1782272 CController->runActionWithFilters( ) ..\CController.php:266
7 0.0557 1782328 CController->runAction( ) ..\CController.php:287
8 0.0557 1782400 CInlineAction->runWithParams( ) ..\CController.php:309
9 0.0559 1782776 InstaLabelControllers\ContainerController->actionChoose( ) ..\CInlineAction.php:50
10 0.0559 1782992 CController->render( ) ..\ContainerController.php:19
11 0.0605 1830048 CBaseController->renderFile( ) ..\CController.php:785
12 0.0606 1830112 CBaseController->renderInternal( ) ..\CBaseController.php:96
13 0.0608 1849672 require( 'C:\Users\bkuhl\htdocs\myapp\application\themes\mytheme\views\layouts\column1.php' ) ..\CBaseController.php:127
14 0.0655 1986680 CBaseController->widget( ) ..\column1.php:11
15 0.0655 1986768 CBaseController->createWidget( ) ..\CBaseController.php:173
16 0.0656 1986768 CWidgetFactory->createWidget( ) ..\CBaseController.php:147
17 0.0656 1986800 YiiBase::import( ) ..\CWidgetFactory.php:147
18 0.0658 1986920 YiiBase::getPathOfAlias( ) ..\YiiBase.php:309
19 0.0661 1987072 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
20 0.0664 1987160 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
21 0.0666 1987248 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
22 0.0669 1987336 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
23 0.0671 1987424 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
24 0.0674 1987512 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
25 0.0677 1987600 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
26 0.0679 1987688 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
27 0.0682 1987776 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
28 0.0685 1987864 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
29 0.0687 1987952 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
30 0.0690 1988040 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
31 0.0695 1988128 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
32 0.0697 1988216 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
33 0.0700 1988304 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
34 0.0703 1988392 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
35 0.0705 1988480 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
36 0.0708 1988568 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
37 0.0711 1988656 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
38 0.0713 1988744 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
39 0.0716 1988832 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
40 0.0719 1988920 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
41 0.0721 1989008 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
42 0.0724 1989096 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
43 0.0726 1989184 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
44 0.0729 1989272 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
45 0.0732 1989360 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
46 0.0734 1989448 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
47 0.0737 1989536 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
48 0.0740 1989624 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
49 0.0742 1989712 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
50 0.0745 1989800 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
51 0.0748 1989888 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
52 0.0750 1989976 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
53 0.0753 1990064 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
54 0.0756 1990152 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
55 0.0758 1990240 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
56 0.0761 1990328 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
57 0.0766 1990416 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
58 0.0768 1990504 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
59 0.0771 1990592 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
60 0.0774 1990680 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
61 0.0776 1990768 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
62 0.0779 1990856 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
63 0.0781 1990944 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
64 0.0784 1991032 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
65 0.0787 1991120 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
66 0.0789 1991208 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
67 0.0792 1991296 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
68 0.0795 1991384 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
69 0.0797 1991472 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
70 0.0800 1991560 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
71 0.0802 1991648 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
72 0.0805 1991736 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
73 0.0808 1991824 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
74 0.0811 1991912 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
75 0.0814 1992000 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
76 0.0820 1992088 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
77 0.0824 1992176 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
78 0.0827 1992264 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
79 0.0830 1992352 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
80 0.0833 1992440 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
81 0.0836 1992528 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
82 0.0838 1992616 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
83 0.0841 1992704 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
84 0.0843 1992792 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
85 0.0846 1992880 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
86 0.0849 1992968 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
87 0.0851 1993056 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
88 0.0854 1993144 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
89 0.0856 1993232 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
90 0.0859 1993320 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
91 0.0862 1993408 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
92 0.0864 1993496 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
93 0.0867 2059080 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
94 0.0870 2059168 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
95 0.0872 2059256 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
96 0.0884 2059344 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
97 0.0888 2059432 YiiBase::getPathOfAlias( ) ..\YiiBase.php:366
98 0.0888 2059552 CWebApplication->findModule( ) ..\YiiBase.php:365
99 0.0889 2059552 CModule->getModule( ) ..\CWebApplication.php:530
Performing further research, it seems as though the error is triggered by
$this->widget('myModule.extensions.widgets.wizardSteps', array(
'id' => 'checkoutSteps',
'steps' => $this->checkoutSteps,
'selectedStep' => $this->selectedStep
));
Webnet668
(Benkuhl)
November 6, 2012, 4:17pm
5
Solution: As it turns out, when in a module’s configuration you specify your own alias’ it doesn’t create an alias for the module automatically.
For example:
'modules'=>array(
'store', //Yii automatically creates a "store" path alias, so "store.extensions" will exist and load something.
'modules'=>array(
'store' => array(
'class' => '\Store\StoreModule',
'aliases' => array(
'store' => 'protected/modules/store', //without this, I couldn't use the "store.extensions" path alias
'StoreComponents' => 'protected/modules/store/components',
'StoreControllers' => 'protected/modules/store/controllers',
'StoreActiveRecordModels' => 'protected/modules/store/models/activeRecord',
'StoreFormModels' => 'protected/modules/store/models/forms'
),