MediaWiki  REL1_24
ComposerVersionNormalizer.php
Go to the documentation of this file.
00001 <?php
00002 
00007 class ComposerVersionNormalizer {
00008 
00023     public function normalizeSuffix( $version ) {
00024         if ( !is_string( $version ) ) {
00025             throw new InvalidArgumentException( '$version must be a string' );
00026         }
00027 
00028         return preg_replace( '/^(\d[\d\.]*)([a-zA-Z]+)(\d*)$/', '$1-$2$3', $version, 1 );
00029     }
00030 
00046     public function normalizeLevelCount( $version ) {
00047         if ( !is_string( $version ) ) {
00048             throw new InvalidArgumentException( '$version must be a string' );
00049         }
00050 
00051         $dashPosition = strpos( $version, '-' );
00052 
00053         if ( $dashPosition !== false ) {
00054             $suffix = substr( $version, $dashPosition );
00055             $version = substr( $version, 0, $dashPosition );
00056         }
00057 
00058         $version = implode( '.', array_pad( explode( '.', $version ), 4, '0' ) );
00059 
00060         if ( $dashPosition !== false ) {
00061             $version .= $suffix;
00062         }
00063 
00064         return $version;
00065     }
00066 }