src/console/shipyard.php
public function action_class( $params ) 
	{	
		$options = \CCDataObject::assign( $params );
		
		$name = $options->get( 0, null );
		
		// get name if we dont have one
		while( !$name ) 
		{
			$name = $this->read( 'Please enter the class name: ' );
		}
		
		// try to resolve the path
		if ( !$path = \CCPath::classes( str_replace( '_', '/', $name ), EXT ) )
		{
			$this->error( 'Could not resolve the path. Check if the namespace is registered.' ); return;
		}
		
		// create the class
		$class = \CCShipyard::create( 'class', $name, $options->get( 'extends', null ), explode( ',', $options->get( 'implements', null ) ) );
		
		// add static init
		if ( !$options->get( 'no-init', false ) )
		{
			$class->add( 'function', '_init', 'public static', '//', "static class initialisation\n@return void" );
		}
				
		// check for overwrite
		if ( file_exists( $path ) )
		{
			if ( !$this->confirm( "The class already exists. Do you wish to overwrite it?", true ) ) 
			{
				return;
			}
		}
		
		// write file
		\CCFile::write( $path, $class->output() );
	}
public function action_class( $params ) 
	{	
		$options = \CCDataObject::assign( $params );
		
		$name = $options->get( 0, null );
		
		// get name if we dont have one
		while( !$name ) 
		{
			$name = $this->read( 'Please enter the class name: ' );
		}
		
		// try to resolve the path
		if ( !$path = \CCPath::classes( str_replace( '_', '/', $name ), EXT ) )
		{
			$this->error( 'Could not resolve the path. Check if the namespace is registered.' ); return;
		}
		
		// create the class
		$class = \CCShipyard::create( 'class', $name, $options->get( 'extends', null ), explode( ',', $options->get( 'implements', null ) ) );
		
		// add static init
		if ( !$options->get( 'no-init', false ) )
		{
			$class->add( 'function', '_init', 'public static', '//', "static class initialisation\n@return void" );
		}
				
		// check for overwrite
		if ( file_exists( $path ) )
		{
			if ( !$this->confirm( "The class already exists. Do you wish to overwrite it?", true ) ) 
			{
				return;
			}
		}
		
		// write file
		\CCFile::write( $path, $class->output() );
	}
public function action_class ( $ params ) { $ options = \ CCDataObject :: assign ( $ params ) ; $ name = $ options -> get ( 0 , null ) ; // get name if we dont have one while ( ! $ name ) { $ name = $ this -> read ( 'Please enter the class name: ' ) ; } // try to resolve the path if ( ! $ path = \ CCPath :: classes ( str_replace ( '_' , '/' , $ name ) , EXT ) ) { $ this -> error ( 'Could not resolve the path. Check if the namespace is registered.' ) ; return ; } // create the class $ class = \ CCShipyard :: create ( 'class' , $ name , $ options -> get ( 'extends' , null ) , explode ( ',' , $ options -> get ( 'implements' , null ) ) ) ; // add static init if ( ! $ options -> get ( 'no-init' , false ) ) { $ class -> add ( 'function' , '_init' , 'public static' , '//' , "static class initialisation\n@return void" ) ; } // check for overwrite if ( file_exists ( $ path ) ) { if ( ! $ this -> confirm ( "The class already exists. Do you wish to overwrite it?" , true ) ) { return ; } } // write file \ CCFile :: write ( $ path , $ class -> output ( ) ) ; }
generate an class

exmample:
run shipyard::class <class>
run shipyard::class <namespace>::<class>

@param array 		$params
@return void
generate an class