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