Follow-up r91997, moved newFromTitle() function to WikiPage.php and renamed to factor...
authorAaron Schulz <aaron@users.mediawiki.org>
Tue, 12 Jul 2011 20:32:09 +0000 (20:32 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Tue, 12 Jul 2011 20:32:09 +0000 (20:32 +0000)
includes/AutoLoader.php
includes/WikiPage.php
includes/WikiPageFactory.php [deleted file]
tests/phpunit/includes/ArticleTest.php

index 41daa7b..af97abf 100644 (file)
@@ -243,7 +243,6 @@ $wgAutoloadLocalClasses = array(
        'WikiFilePage' =>  'includes/WikiFilePage.php',
        'WikiImporter' => 'includes/Import.php',
        'WikiPage' =>  'includes/WikiPage.php',
-       'WikiPageFactory' => 'includes/WikiPageFactory.php',
        'WikiRevision' => 'includes/Import.php',
        'WikiMap' => 'includes/WikiMap.php',
        'WikiReference' => 'includes/WikiMap.php',
index 58706ce..61bda70 100644 (file)
@@ -47,6 +47,29 @@ class WikiPage extends Page {
                $this->mTitle = $title;
        }
 
+       /**
+        * Create a WikiPage object of the appropriate class for the given title.
+        *
+        * @param $title Title
+        * @return WikiPage object of the appropriate type
+        */
+       public static function factory( Title $title ) {
+               switch( $title->getNamespace() ) {
+                       case NS_MEDIA:
+                               throw new MWException( "NS_MEDIA is a virtual namespace" );
+                       case NS_FILE:
+                               $page = new WikiFilePage( $title );
+                               break;
+                       case NS_CATEGORY:
+                               $page = new WikiCategoryPage( $title );
+                               break;
+                       default:
+                               $page = new WikiPage( $title );
+               }
+
+               return $page;
+       }
+
        /**
         * Constructor from a page id
         *
diff --git a/includes/WikiPageFactory.php b/includes/WikiPageFactory.php
deleted file mode 100644 (file)
index 4310c38..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Factory class for classes representing a MediaWiki article and history.
- */
-class WikiPageFactory {
-       /**
-        * Create an WikiPage object of the appropriate class for the given title.
-        *
-        * @param $title Title
-        * @return WikiPage object
-        */
-       public static function newFromTitle( Title $title ) {
-               switch( $title->getNamespace() ) {
-                       case NS_MEDIA:
-                               throw new MWException( "NS_MEDIA is a virtual namespace" );
-                       case NS_FILE:
-                               $page = new WikiFilePage( $title );
-                               break;
-                       case NS_CATEGORY:
-                               $page = new WikiCategoryPage( $title );
-                               break;
-                       default:
-                               $page = new WikiPage( $title );
-               }
-
-               return $page;
-       }
-}
index 449851c..18c970d 100644 (file)
@@ -65,15 +65,15 @@ class ArticleTest extends MediaWikiTestCase {
 
        function testWikiPageFactory() {
                $title = Title::makeTitle( NS_FILE, 'Someimage.png' );
-               $page = WikiPageFactory::newFromTitle( $title );
+               $page = WikiPage::factory( $title );
                $this->assertEquals( 'WikiFilePage', get_class( $page ) );
                
                $title = Title::makeTitle( NS_CATEGORY, 'SomeCategory' );
-               $page = WikiPageFactory::newFromTitle( $title );
+               $page = WikiPage::factory( $title );
                $this->assertEquals( 'WikiCategoryPage', get_class( $page ) );
                
                $title = Title::makeTitle( NS_MAIN, 'SomePage' );
-               $page = WikiPageFactory::newFromTitle( $title );
+               $page = WikiPage::factory( $title );
                $this->assertEquals( 'WikiPage', get_class( $page ) );
        }
 }