当前位置: 首页>>代码示例>>PHP>>正文


PHP SiteTree::hasMethod方法代码示例

本文整理汇总了PHP中SiteTree::hasMethod方法的典型用法代码示例。如果您正苦于以下问题:PHP SiteTree::hasMethod方法的具体用法?PHP SiteTree::hasMethod怎么用?PHP SiteTree::hasMethod使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SiteTree的用法示例。


在下文中一共展示了SiteTree::hasMethod方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testHasmethodBehaviour

	function testHasmethodBehaviour() {
		/* SiteTree should have all of the methods that Versioned has, because Versioned is listed in SiteTree's
		 * extensions */
		$st = new SiteTree();
		$cc = new ContentController($st);

		$this->assertTrue($st->hasMethod('publish'), "Test SiteTree has publish");
		$this->assertTrue($st->hasMethod('migrateVersion'), "Test SiteTree has migrateVersion");
		
		/* This relationship should be case-insensitive, too */
		$this->assertTrue($st->hasMethod('PuBliSh'), "Test SiteTree has PuBliSh");
		$this->assertTrue($st->hasMethod('MiGratEVersIOn'), "Test SiteTree has MiGratEVersIOn");
		
		/* In a similar manner, all of SiteTree's methods should be available on ContentController, because $failover is set */
		$this->assertTrue($cc->hasMethod('canView'), "Test ContentController has canView");
		$this->assertTrue($cc->hasMethod('linkorcurrent'), "Test ContentController has linkorcurrent");
		
		/* This 'method copying' is transitive, so all of Versioned's methods should be available on ContentControler.
		 * Once again, this is case-insensitive */
		$this->assertTrue($cc->hasMethod('MiGratEVersIOn'), "Test ContentController has MiGratEVersIOn");
		
		/* The above examples make use of SiteTree, Versioned and ContentController.  Let's test defineMethods() more
		 * directly, with some sample objects */
		$objs = array();
		$objs[] = new ObjectTest_T2();
		$objs[] = new ObjectTest_T2();
		$objs[] = new ObjectTest_T2();
		
		// All these methods should exist and return true
		$trueMethods = array('testMethod','otherMethod','someMethod','t1cMethod','normalMethod');
		
		foreach($objs as $i => $obj) {
			foreach($trueMethods as $method) {
				$methodU = strtoupper($method);
				$methodL = strtoupper($method);
				$this->assertTrue($obj->hasMethod($method), "Test that obj#$i has method $method");
				$this->assertTrue($obj->hasMethod($methodU), "Test that obj#$i has method $methodU");
				$this->assertTrue($obj->hasMethod($methodL), "Test that obj#$i has method $methodL");

				$this->assertTrue($obj->$method(), "Test that obj#$i can call method $method");
				$this->assertTrue($obj->$methodU(), "Test that obj#$i can call method $methodU");
				$this->assertTrue($obj->$methodL(), "Test that obj#$i can call method $methodL");
			}
			
			$this->assertTrue($obj->hasMethod('Wrapping'), "Test that obj#$i has method Wrapping");
			$this->assertTrue($obj->hasMethod('WRAPPING'), "Test that obj#$i has method WRAPPING");
			$this->assertTrue($obj->hasMethod('wrapping'), "Test that obj#$i has method wrapping");
			
			$this->assertEquals("Wrapping", $obj->Wrapping(), "Test that obj#$i can call method Wrapping");
			$this->assertEquals("Wrapping", $obj->WRAPPING(), "Test that obj#$i can call method WRAPPIGN");
			$this->assertEquals("Wrapping", $obj->wrapping(), "Test that obj#$i can call method wrapping");
		}
		
	}
开发者ID:neopba,项目名称:silverstripe-book,代码行数:54,代码来源:ObjectTest.php

示例2: testHasMethod

 function testHasMethod()
 {
     $st = new SiteTree();
     $cc = new ContentController($st);
     // Check that Versiond methods exist on SiteTree
     $this->assertTrue($st->hasMethod('publish'), "Test SiteTree has publish");
     $this->assertTrue($st->hasMethod('migrateVersion'), "Test SiteTree has migrateVersion");
     // Check for different casing
     $this->assertTrue($st->hasMethod('PuBliSh'), "Test SiteTree has PuBliSh");
     $this->assertTrue($st->hasMethod('MiGratEVersIOn'), "Test SiteTree has MiGratEVersIOn");
     // Check that SiteTree methods exist on ContentController (test failover)
     $this->assertTrue($cc->hasMethod('canView'), "Test ContentController has canView");
     $this->assertTrue($cc->hasMethod('linkorcurrent'), "Test ContentController has linkorcurrent");
     $this->assertTrue($cc->hasMethod('MiGratEVersIOn'), "Test ContentController has MiGratEVersIOn");
     // Make use of the test object below.  1st instantiation is different from subsequent, so create a few
     $objs = array();
     $objs[] = new ObjectTest_T2();
     $objs[] = new ObjectTest_T2();
     $objs[] = new ObjectTest_T2();
     // All these methods should exist and return true
     $trueMethods = array('testMethod', 'otherMethod', 'someMethod', 't1cMethod', 'normalMethod');
     foreach ($objs as $i => $obj) {
         foreach ($trueMethods as $method) {
             $methodU = strtoupper($method);
             $methodL = strtoupper($method);
             $this->assertTrue($obj->hasMethod($method), "Test that obj#{$i} has method {$method}");
             $this->assertTrue($obj->hasMethod($methodU), "Test that obj#{$i} has method {$methodU}");
             $this->assertTrue($obj->hasMethod($methodL), "Test that obj#{$i} has method {$methodL}");
             $this->assertTrue($obj->{$method}(), "Test that obj#{$i} can call method {$method}");
             $this->assertTrue($obj->{$methodU}(), "Test that obj#{$i} can call method {$methodU}");
             $this->assertTrue($obj->{$methodL}(), "Test that obj#{$i} can call method {$methodL}");
         }
         $this->assertTrue($obj->hasMethod('Wrapping'), "Test that obj#{$i} has method Wrapping");
         $this->assertTrue($obj->hasMethod('WRAPPING'), "Test that obj#{$i} has method WRAPPING");
         $this->assertTrue($obj->hasMethod('wrapping'), "Test that obj#{$i} has method wrapping");
         $this->assertEquals("Wrapping", $obj->Wrapping(), "Test that obj#{$i} can call method Wrapping");
         $this->assertEquals("Wrapping", $obj->WRAPPING(), "Test that obj#{$i} can call method WRAPPIGN");
         $this->assertEquals("Wrapping", $obj->wrapping(), "Test that obj#{$i} can call method wrapping");
     }
 }
开发者ID:ramziammar,项目名称:websites,代码行数:40,代码来源:ObjectTest.php

示例3: getPageHierarchy

 /**
  * Builds a hierarchy from the current page to the top product group page
  * or holder.
  *
  * @param SiteTree $currPage The page to start from
  *
  * @return array
  *
  * @author Sascha Koehler <skoehler@pixeltricks.de>
  * @since 18.10.2012
  */
 public static function getPageHierarchy($currPage)
 {
     if (!array_key_exists('SiteTree_' . $currPage->ID, self::$pageHierarchy)) {
         $level = 0;
         $hierarchy = array('SiteTree_' . $currPage->ID => array('Page' => $currPage, 'Level' => $level));
         while ($currPage->hasMethod('getParent') && $currPage->getParent()) {
             $parent = $currPage->getParent();
             if ($parent) {
                 $level++;
                 $hierarchy['SiteTree_' . $parent->ID] = array('Page' => $parent, 'Level' => $level);
                 $currPage = $parent;
             } else {
                 break;
             }
         }
         self::$pageHierarchy['SiteTree_' . $currPage->ID] = array();
         foreach ($hierarchy as $pageID => $pageInfo) {
             self::$pageHierarchy['SiteTree_' . $currPage->ID][$pageID] = array('Page' => $pageInfo['Page'], 'Level' => ($pageInfo['Level'] - $level) * -1);
         }
     }
     return self::$pageHierarchy['SiteTree_' . $currPage->ID];
 }
开发者ID:silvercart,项目名称:silvercart,代码行数:33,代码来源:SilvercartTools.php


注:本文中的SiteTree::hasMethod方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。