public static function get_all_config_files()
 {
     $all_config_files = array();
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     /*
      * Get the config files in the module directories.
      */
     foreach ($project_directory->get_module_directories() as $module_directory) {
         if ($module_directory->has_config_directory()) {
             $config_directory = $module_directory->get_config_directory();
             $all_config_files = array_merge($all_config_files, $config_directory->get_all_config_files());
         }
     }
     /*
      * Get the config files that are specific to this
      * instance of the project.
      */
     $instance_specific_config_directory = Configuration_ConfigDirectoriesHelper::get_instance_specific_config_directory();
     $all_config_files = array_merge($all_config_files, $instance_specific_config_directory->get_all_config_files());
     #usort(
     #	$all_config_files,
     #	create_function(
     #		'$a, $b',
     #		'strcmp($a->get_name(), $b->get_name());'
     #	)
     #);
     return $all_config_files;
 }
 public static function test_identifying_names_for_all_modules_are_unique()
 {
     $identifying_names = array();
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     foreach ($project_directory->get_module_directories() as $module_directory) {
         $identifying_names[] = $module_directory->get_identifying_name();
     }
     return count($identifying_names) == count(array_unique($identifying_names));
 }
 public static function get_module_directory_for_camel_case_root($camel_case_module_root)
 {
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     foreach ($project_directory->get_module_directories() as $module_directory) {
         if ($module_directory->get_camel_case_root() == $camel_case_module_root) {
             return $module_directory;
         }
     }
     throw new ErrorHandling_SprintfException('Unable to module directory for \'%s\'!', array($camel_case_module_name));
 }
 public static function get_passwords_file()
 {
     #$project_directory_finder
     #	= HaddockProjectOrganisation_ProjectDirectoryFinder::get_instance();
     #
     #$project_directory
     #	= $project_directory_finder->get_project_directory_for_this_project();
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     $passwords_file = $project_directory->get_passwords_file();
     return $passwords_file;
 }
 public static function test_all_classes_compile_without_writing_to_stdout()
 {
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     $php_class_files = $project_directory->get_php_class_files();
     $php_cli_interpreter = CLIScripts_InterpreterProgramHelper::get_php_cli_interpreter();
     $temp_dir = Environment_MachineHelper::get_temporary_directory();
     #print_r($temp_dir); exit;
     $tmp_out_file = $temp_dir->get_name() . '/haddock-compilations-tests-out.txt';
     $tmp_err_file = $temp_dir->get_name() . '/haddock-compilations-tests-err.txt';
     $define_debug_constants_file = PROJECT_ROOT . '/haddock/public-html/public-html/' . 'define-debug-constants.inc.php';
     $autoload_inc_file_name = PROJECT_ROOT . '/haddock/haddock-project-organisation/includes/' . 'autoload.inc.php';
     $total_out_length = 0;
     foreach ($php_class_files as $php_class_file) {
         $out_length = 0;
         self::conditionally_unlink_tmp_files($tmp_out_file, $tmp_err_file);
         $tmp_class_file_name = $temp_dir->get_name() . '/haddock-compilations-tests-tmp-' . $php_class_file->get_php_class_name() . '-class.php';
         $fh = fopen($tmp_class_file_name, 'w');
         if ($fh) {
             fwrite($fh, '<?php define(\'PROJECT_ROOT\', \'' . PROJECT_ROOT . '\'); ?>');
             fwrite($fh, file_get_contents($define_debug_constants_file));
             fwrite($fh, file_get_contents($autoload_inc_file_name));
             fwrite($fh, file_get_contents($php_class_file->get_name()));
             fclose($fh);
             $cmd = "{$php_cli_interpreter} -f \"{$tmp_class_file_name}\" >> \"{$tmp_out_file}\" 2>> \"{$tmp_err_file}\"";
             #echo $cmd . PHP_EOL;
             system($cmd);
             $out_length = strlen(file_get_contents($tmp_out_file)) + strlen(file_get_contents($tmp_err_file));
             if ($out_length == 0) {
                 unlink($tmp_class_file_name);
             }
         }
         $total_out_length += $out_length;
         self::conditionally_unlink_tmp_files($tmp_out_file, $tmp_err_file);
     }
     return $total_out_length == 0;
 }
 public static function get_all_module_directories()
 {
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     return $project_directory->get_module_directories();
 }
 public static function get_project_specific_directory()
 {
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     return $project_directory->get_project_specific_directory();
 }
 public function do_actions()
 {
     $project_directory = HaddockProjectOrganisation_ProjectDirectoryHelper::get_project_directory();
     $php_class_files = $project_directory->get_php_class_files();
     printf('This project has %d PHP class files.' . PHP_EOL, count($php_class_files));
 }