private static function get_name_file_name(HaddockProjectOrganisation_ModuleDirectory $module_directory) { $config_directory_name = $module_directory->get_config_directory_name(); $haddock_project_organisation_config_directory_name = $config_directory_name . DIRECTORY_SEPARATOR . 'haddock-project-organisation'; $name_file_name = $haddock_project_organisation_config_directory_name . DIRECTORY_SEPARATOR . 'name.txt'; return $name_file_name; }
public static function create_regex_validator($new_regex_validator_name, HaddockProjectOrganisation_ModuleDirectory $module_directory) { $classes_directory = $module_directory->get_classes_directory(); $input_validators_directory_name = $classes_directory->get_name() . DIRECTORY_SEPARATOR . 'input-validation'; #echo '$input_validators_directory_name: ' . $input_validators_directory_name . PHP_EOL; FileSystem_DirectoryHelper::mkdir_parents($input_validators_directory_name); $input_validator_class_name = $module_directory->get_camel_case_root() . '_' . $new_regex_validator_name . 'Validator'; #echo '$input_validator_class_name: ' . $input_validator_class_name . PHP_EOL; $input_validator_file_name = $input_validators_directory_name . DIRECTORY_SEPARATOR . $input_validator_class_name . '.inc.php'; #echo '$input_validator_file_name: ' . $input_validator_file_name . PHP_EOL; if (is_file($input_validator_file_name)) { throw new ErrorHandling_SprintfException('\'%s\' already exists!', array($input_validator_file_name)); } else { $date = date('Y-m-d'); $copyright_holder = $module_directory->get_copyright_holder(); $file_contents = <<<CNT <?php /** * {$input_validator_class_name} * * @copyright {$date}, {$copyright_holder} */ class \t{$input_validator_class_name} extends \tInputValidation_RegexValidator { \tprotected function \t\tget_regex() \t{ \t\t/* \t\t * Write the regex here. \t\t */ \t\treturn '/^\$/'; \t} \t \tprotected function \t\tget_exception_message() \t{ \t\t/* \t\t * Write a more informative exception message here. \t\t */ \t\treturn 'Regex validation error!'; \t} } ?> CNT; if ($fh = fopen($input_validator_file_name, 'w')) { fwrite($fh, $file_contents); fclose($fh); HaddockProjectOrganisation_AutoloadFilesHelper::refresh_autoload_file(); } } }
private static function get_camel_case_root_file_name(HaddockProjectOrganisation_ModuleDirectory $module_directory) { $config_directory_name = $module_directory->get_config_directory_name(); $haddock_project_organisation_config_directory_name = $config_directory_name . DIRECTORY_SEPARATOR . 'haddock-project-organisation'; #if (!is_dir($haddock_project_organisation_config_directory_name)) { # FileSystem_DirectoryHelper # ::mkdir_parents( # $haddock_project_organisation_config_directory_name # ); #} $camel_case_root_file_name = $haddock_project_organisation_config_directory_name . DIRECTORY_SEPARATOR . 'camel-case-root.txt'; return $camel_case_root_file_name; }
public static function create_cli_script($new_script_name, HaddockProjectOrganisation_ModuleDirectory $module_directory) { /* * TODO Make sure that the module directory has a classes directory first. * * If there is no classes directory, then such a directory should created. */ $module_directory->make_sure_classes_directory_exists(); $classes_directory = $module_directory->get_classes_directory(); $cli_scripts_directory_name = $classes_directory->get_name() . DIRECTORY_SEPARATOR . 'cli-scripts'; #echo '$cli_scripts_directory_name: ' . $cli_scripts_directory_name . PHP_EOL; FileSystem_DirectoryHelper::mkdir_parents($cli_scripts_directory_name); $script_class_name = $module_directory->get_camel_case_root() . '_' . $new_script_name . 'CLIScript'; #echo '$script_class_name: ' . $script_class_name . PHP_EOL; $cli_script_file_name = $cli_scripts_directory_name . DIRECTORY_SEPARATOR . $script_class_name . '.inc.php'; #echo '$cli_script_file_name: ' . $cli_script_file_name . PHP_EOL; if (is_file($cli_script_file_name)) { throw new ErrorHandling_SprintfException('\'%s\' already exists!', array($cli_script_file_name)); } else { $date = date('Y-m-d'); $copyright_holder = $module_directory->get_copyright_holder(); $file_contents = <<<CNT <?php /** * {$script_class_name} * * @copyright {$date}, {$copyright_holder} */ class \t{$script_class_name} extends \tCLIScripts_CLIScript { \tpublic function \t\tdo_actions() \t{ \t\t/* \t\t * Write code here. \t\t */ \t} } ?> CNT; if ($fh = fopen($cli_script_file_name, 'w')) { fwrite($fh, $file_contents); fclose($fh); CLIScripts_ScriptObjectRunnersHelper::generate_script_object_runners(); } } }
public function create_file_for_table(Database_Table $table, HaddockProjectOrganisation_ModuleDirectory $module_directory) { if (!$module_directory->has_table_specification_directory()) { $module_directory->create_table_specification_directory(); } $table_specification_directory = $module_directory->get_table_specification_directory(); if ($table_specification_directory->has_file_for_table($table)) { $table_name = $table->get_name(); $table_specification_directory_name = $table_specification_directory->get_name(); $msg = <<<SQL There is already a table specification file for {$table_name} in {$table_specification_directory_name}! Unable to create another! SQL; throw new Exception($msg); } $table_specification_directory->create_file_for_table($table); $table_specification_file = $table_specification_directory->get_file_for_table($table); $table_specification_file->save_table_structure($table); }
public static function create_directory_class($new_directory_class_name, HaddockProjectOrganisation_ModuleDirectory $module_directory) { $classes_directory = $module_directory->get_classes_directory(); $directory_classes_directory_name = $classes_directory->get_name() . DIRECTORY_SEPARATOR . 'file-system' . DIRECTORY_SEPARATOR . 'directories'; echo '$directory_classes_directory_name: ' . $directory_classes_directory_name . PHP_EOL; FileSystem_DirectoryHelper::mkdir_parents($directory_classes_directory_name); $directory_class_name = $module_directory->get_camel_case_root() . '_' . $new_directory_class_name . 'Directory'; echo '$directory_class_name: ' . $directory_class_name . PHP_EOL; $directory_class_file_name = $directory_classes_directory_name . DIRECTORY_SEPARATOR . $directory_class_name . '.inc.php'; echo '$directory_class_file_name: ' . $directory_class_file_name . PHP_EOL; if (is_file($directory_class_file_name)) { throw new ErrorHandling_SprintfException('\'%s\' already exists!', array($directory_class_file_name)); } else { $date = date('Y-m-d'); $copyright_holder = $module_directory->get_copyright_holder(); $file_contents = <<<CNT <?php /** * {$directory_class_name} * * @copyright {$date}, {$copyright_holder} */ class \t{$directory_class_name} extends \tFileSystem_Directory { \t/* \t * Write code here. \t */ } ?> CNT; if ($fh = fopen($directory_class_file_name, 'w')) { fwrite($fh, $file_contents); fclose($fh); HaddockProjectOrganisation_AutoloadFilesHelper::refresh_autoload_file(); } } }
public function __construct($name, HaddockProjectOrganisation_PlugInModulesDirectory $plug_in_modules_directory) { parent::__construct($name, $plug_in_modules_directory->get_project_directory()); $this->plug_in_modules_directory = $plug_in_modules_directory; }
public function __construct($name, HaddockProjectOrganisation_CoreModulesDirectory $core_modules_directory) { parent::__construct($name, $core_modules_directory->get_project_directory()); $this->core_modules_directory = $core_modules_directory; }
public function add_module_directory(HaddockProjectOrganisation_ModuleDirectory $module_directory) { $this->required_modules[] = $module_directory->get_identifying_name(); }
public static function create_unit_tests_class($new_unit_tests_class_name, HaddockProjectOrganisation_ModuleDirectory $module_directory) { $classes_directory = $module_directory->get_classes_directory(); $unit_tests_directory_name = $classes_directory->get_name() . DIRECTORY_SEPARATOR . 'unit-tests'; #echo '$unit_tests_directory_name: ' . $unit_tests_directory_name . PHP_EOL; FileSystem_DirectoryHelper::mkdir_parents($unit_tests_directory_name); $unit_tests_class_name = $module_directory->get_camel_case_root() . '_' . $new_unit_tests_class_name . 'Tests'; #echo '$unit_tests_class_name: ' . $unit_tests_class_name . PHP_EOL; $unit_tests_class_file_name = $unit_tests_directory_name . DIRECTORY_SEPARATOR . $unit_tests_class_name . '.inc.php'; #echo '$unit_tests_class_file_name: ' . $unit_tests_class_file_name . PHP_EOL; if (is_file($unit_tests_class_file_name)) { throw new ErrorHandling_SprintfException('\'%s\' already exists!', array($unit_tests_class_file_name)); } else { $date = date('Y-m-d'); $copyright_holder = $module_directory->get_copyright_holder(); $file_contents = <<<CNT <?php /** * {$unit_tests_class_name} * * @copyright {$date}, {$copyright_holder} */ class \t{$unit_tests_class_name} extends \tUnitTests_UnitTests { \tpublic static function \t\tset_up() \t{ \t\t/* \t\t * Prepare the environment for each test in this class. \t\t */ \t} \t \tpublic static function \t\ttear_down() \t{ \t\t/* \t\t * Return the environment to a pristine state after \t\t * each test in this class. \t\t */ \t} \t \t/* \t * ---------------------------------------- \t * The tests. \t * ---------------------------------------- \t */ \t \t/* \t * Write public static test functions here. \t */ } ?> CNT; if ($fh = fopen($unit_tests_class_file_name, 'w')) { fwrite($fh, $file_contents); fclose($fh); HaddockProjectOrganisation_AutoloadFilesHelper::refresh_autoload_file(); } } }
public static function get_delta_files_directory_name(HaddockProjectOrganisation_ModuleDirectory $module_directory) { $delta_files_directory_name = $module_directory->get_name() . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'deltas'; #echo '$delta_files_directory_name: ' . $delta_files_directory_name . PHP_EOL; return $delta_files_directory_name; }