@@ -279,7 +279,7 @@ public static function register($key, $value, $graceful = false)
279
279
if ($ graceful ) {
280
280
return ;
281
281
}
282
- self ::throwException (' Mage registry key " ' . $ key . ' " already exists' );
282
+ self ::throwException (" Mage registry key $ key already exists " );
283
283
}
284
284
self ::$ _registry [$ key ] = $ value ;
285
285
}
@@ -332,7 +332,7 @@ public static function setRoot($appRoot = '')
332
332
if (is_dir ($ appRoot ) && is_readable ($ appRoot )) {
333
333
self ::$ _appRoot = $ appRoot ;
334
334
} else {
335
- self ::throwException ($ appRoot . ' is not a directory or not readable by this user' );
335
+ self ::throwException (" $ appRoot is not a directory or not readable by this user " );
336
336
}
337
337
}
338
338
@@ -494,14 +494,18 @@ public static function getConfig()
494
494
* @param callback $callback
495
495
* @param array $data
496
496
* @param string $observerName
497
- * @param string $observerClass
497
+ * @param class- string|'' $observerClass
498
498
* @return Varien_Event_Collection
499
+ * @throws Mage_Core_Exception
499
500
*/
500
501
public static function addObserver ($ eventName , $ callback , $ data = [], $ observerName = '' , $ observerClass = '' )
501
502
{
502
503
if ($ observerClass == '' ) {
503
504
$ observerClass = 'Varien_Event_Observer ' ;
504
505
}
506
+ if (!class_exists ($ observerClass )) {
507
+ self ::throwException ("Invalid observer class: $ observerClass " );
508
+ }
505
509
$ observer = new $ observerClass ();
506
510
$ observer ->setName ($ observerName )->addData ($ data )->setEventName ($ eventName )->setCallback ($ callback );
507
511
return self ::getEvents ()->addObserver ($ observer );
@@ -525,128 +529,157 @@ public static function dispatchEvent($name, array $data = [])
525
529
}
526
530
527
531
/**
528
- * Retrieve model object
532
+ * Retrieve helper singleton by alias
529
533
*
530
- * @link Mage_Core_Model_Config::getModelInstance
531
- * @param string $modelClass
532
- * @param array|string|object $arguments
533
- * @return Mage_Core_Model_Abstract|false
534
+ * ```php
535
+ * $helper = Mage::helper('core'); // Mage_Core_Helper_Data
536
+ * $helper = Mage::helper('core/url'); // Mage_Core_Helper_Url
537
+ * ```
538
+ *
539
+ * @param string $helperAlias
540
+ * @return Mage_Core_Helper_Abstract|false
534
541
*/
535
- public static function getModel ( $ modelClass = '' , $ arguments = [] )
542
+ public static function helper ( $ helperAlias )
536
543
{
537
- return self ::getConfig ()->getModelInstance ($ modelClass , $ arguments );
544
+ $ registryKey = '_helper/ ' . $ helperAlias ;
545
+ if (!isset (self ::$ _registry [$ registryKey ])) {
546
+ self ::register ($ registryKey , self ::getConfig ()->getHelperInstance ($ helperAlias ));
547
+ }
548
+ return self ::$ _registry [$ registryKey ];
538
549
}
539
550
540
551
/**
541
- * Retrieve model object singleton
552
+ * Retrieve model instance by alias
553
+ *
554
+ * ```php
555
+ * $model = Mage::getModel('core/store'); // Mage_Core_Model_Store
556
+ * ```
542
557
*
543
- * @param string $modelClass
544
- * @return Mage_Core_Model_Abstract|false
558
+ * @param string $modelAlias
559
+ * @param array|string|object $arguments
560
+ * @return Mage_Core_Model_Abstract|false
545
561
*/
546
- public static function getSingleton ( $ modelClass = '' , array $ arguments = [])
562
+ public static function getModel ( $ modelAlias , $ arguments = [])
547
563
{
548
- $ registryKey = '_singleton/ ' . $ modelClass ;
549
- if (!isset (self ::$ _registry [$ registryKey ])) {
550
- self ::register ($ registryKey , self ::getModel ($ modelClass , $ arguments ));
551
- }
552
- return self ::$ _registry [$ registryKey ];
564
+ return self ::getConfig ()->getModelInstance ($ modelAlias , $ arguments );
553
565
}
554
566
555
567
/**
556
- * Retrieve object of resource model
568
+ * Retrieve model singleton by alias
569
+ *
570
+ * ```php
571
+ * $model = Mage::getModel('core/session'); // Mage_Core_Model_Session
572
+ * ```
557
573
*
558
- * @param string $modelClass
559
- * @param array $arguments
560
- * @return Mage_Core_Model_Resource_Db_Collection_Abstract|false
574
+ * @param string $modelAlias
575
+ * @return Mage_Core_Model_Abstract|false
561
576
*/
562
- public static function getResourceModel ( $ modelClass , $ arguments = [])
577
+ public static function getSingleton ( $ modelAlias , array $ arguments = [])
563
578
{
564
- return self ::getConfig ()->getResourceModelInstance ($ modelClass , $ arguments );
579
+ $ registryKey = '_singleton/ ' . $ modelAlias ;
580
+ if (!isset (self ::$ _registry [$ registryKey ])) {
581
+ self ::register ($ registryKey , self ::getModel ($ modelAlias , $ arguments ));
582
+ }
583
+ return self ::$ _registry [$ registryKey ];
565
584
}
566
585
567
586
/**
568
- * Retrieve Controller instance by ClassName
587
+ * Retrieve resource model by alias
569
588
*
570
- * @param string $class
571
- * @param Mage_Core_Controller_Request_Http $request
572
- * @param Mage_Core_Controller_Response_Http $response
573
- * @return Mage_Core_Controller_Front_Action
589
+ * ```php
590
+ * $model = Mage::getResourceModel('core/store_collection'); // Mage_Core_Model_Resource_Store_Collection
591
+ * ```
592
+ *
593
+ * @param string $modelAlias
594
+ * @param array $arguments
595
+ * @return Mage_Core_Model_Resource_Db_Collection_Abstract|false
574
596
*/
575
- public static function getControllerInstance ( $ class , $ request , $ response , array $ invokeArgs = [])
597
+ public static function getResourceModel ( $ modelAlias , $ arguments = [])
576
598
{
577
- return new $ class ( $ request , $ response , $ invokeArgs );
599
+ return self :: getConfig ()-> getResourceModelInstance ( $ modelAlias , $ arguments );
578
600
}
579
601
580
602
/**
581
- * Retrieve resource model object singleton
603
+ * Retrieve resource model singleton by alias
582
604
*
583
- * @param string $modelClass
584
- * @return object
605
+ * ```php
606
+ * $model = Mage::getResourceSingleton('core/session'); // Mage_Core_Model_Resource_Session
607
+ * ```
608
+ *
609
+ * @param string $modelAlias
610
+ * @return Mage_Core_Model_Resource_Db_Collection_Abstract|false
585
611
*/
586
- public static function getResourceSingleton ($ modelClass = '' , array $ arguments = [])
612
+ public static function getResourceSingleton ($ modelAlias , array $ arguments = [])
587
613
{
588
- $ registryKey = '_resource_singleton/ ' . $ modelClass ;
614
+ $ registryKey = '_resource_singleton/ ' . $ modelAlias ;
589
615
if (!isset (self ::$ _registry [$ registryKey ])) {
590
- self ::register ($ registryKey , self ::getResourceModel ($ modelClass , $ arguments ));
616
+ self ::register ($ registryKey , self ::getResourceModel ($ modelAlias , $ arguments ));
591
617
}
592
618
return self ::$ _registry [$ registryKey ];
593
619
}
594
620
595
621
/**
596
- * Retrieve block object
622
+ * Retrieve resource helper model singleton
597
623
*
598
- * @param string $type
599
- * @return Mage_Core_Block_Abstract|false
624
+ * ```php
625
+ * $model = Mage::getResourceHelper('core'); // Mage_Core_Model_Resource_Helper_Mysql4
626
+ * ```
627
+ *
628
+ * @param string $moduleAlias
629
+ * @return Mage_Core_Model_Resource_Helper_Abstract|false
600
630
*/
601
- public static function getBlockSingleton ( $ type )
631
+ public static function getResourceHelper ( $ moduleAlias )
602
632
{
603
- $ action = self ::app ()->getFrontController ()->getAction ();
604
- return $ action ? $ action ->getLayout ()->getBlockSingleton ($ type ) : false ;
633
+ $ registryKey = '_resource_helper/ ' . $ moduleAlias ;
634
+ if (!isset (self ::$ _registry [$ registryKey ])) {
635
+ self ::register ($ registryKey , self ::getConfig ()->getResourceHelperInstance ($ moduleAlias ));
636
+ }
637
+ return self ::$ _registry [$ registryKey ];
605
638
}
606
639
607
640
/**
608
- * Retrieve helper object
641
+ * Retrieve Controller instance by ClassName
609
642
*
610
- * @param string $name the helper name
611
- * @return Mage_Core_Helper_Abstract
643
+ * @param class-string $class
644
+ * @param Mage_Core_Controller_Request_Http $request
645
+ * @param Mage_Core_Controller_Response_Http $response
646
+ * @return Mage_Core_Controller_Front_Action
647
+ * @throws Mage_Core_Exception
612
648
*/
613
- public static function helper ( $ name )
649
+ public static function getControllerInstance ( $ class , $ request , $ response , array $ invokeArgs = [] )
614
650
{
615
- $ registryKey = '_helper/ ' . $ name ;
616
- if (!isset (self ::$ _registry [$ registryKey ])) {
617
- $ helperClass = self ::getConfig ()->getHelperClassName ($ name );
618
- self ::register ($ registryKey , new $ helperClass ());
651
+ if (!class_exists ($ class )) {
652
+ self ::throwException ("Invalid controller class: $ class " );
619
653
}
620
- return self :: $ _registry [ $ registryKey ] ;
654
+ return new $ class ( $ request , $ response , $ invokeArgs ) ;
621
655
}
622
656
623
657
/**
624
- * Retrieve resource helper object
658
+ * Retrieve block object
625
659
*
626
- * @param string $moduleName
627
- * @return Mage_Core_Model_Resource_Helper_Abstract
660
+ * @param string $type
661
+ * @return Mage_Core_Block_Abstract|false
628
662
*/
629
- public static function getResourceHelper ( $ moduleName )
663
+ public static function getBlockSingleton ( $ type )
630
664
{
631
- $ registryKey = '_resource_helper/ ' . $ moduleName ;
632
- if (!isset (self ::$ _registry [$ registryKey ])) {
633
- $ helperClass = self ::getConfig ()->getResourceHelper ($ moduleName );
634
- self ::register ($ registryKey , $ helperClass );
635
- }
636
- return self ::$ _registry [$ registryKey ];
665
+ $ action = self ::app ()->getFrontController ()->getAction ();
666
+ return $ action ? $ action ->getLayout ()->getBlockSingleton ($ type ) : false ;
637
667
}
638
668
639
669
/**
640
670
* Return new exception by module to be thrown
641
671
*
642
- * @param string $module
672
+ * @param string $moduleName
643
673
* @param string $message
644
674
* @param integer $code
645
675
* @return Mage_Core_Exception
646
676
*/
647
- public static function exception ($ module = 'Mage_Core ' , $ message = '' , $ code = 0 )
677
+ public static function exception ($ moduleName = 'Mage_Core ' , $ message = '' , $ code = 0 )
648
678
{
649
- $ className = $ module . '_Exception ' ;
679
+ $ className = $ moduleName . '_Exception ' ;
680
+ if (!class_exists ($ className )) {
681
+ $ className = 'Mage_Core_Exception ' ;
682
+ }
650
683
return new $ className ($ message , $ code );
651
684
}
652
685
@@ -655,6 +688,7 @@ public static function exception($module = 'Mage_Core', $message = '', $code = 0
655
688
*
656
689
* @param string $message
657
690
* @param string $messageStorage
691
+ * @return never
658
692
* @throws Mage_Core_Exception
659
693
*/
660
694
public static function throwException ($ message , $ messageStorage = null )
0 commit comments