本文整理汇总了PHP中Zend_CodeGenerator_Php_File::setClass方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_CodeGenerator_Php_File::setClass方法的具体用法?PHP Zend_CodeGenerator_Php_File::setClass怎么用?PHP Zend_CodeGenerator_Php_File::setClass使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_CodeGenerator_Php_File
的用法示例。
在下文中一共展示了Zend_CodeGenerator_Php_File::setClass方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: scaffold
public function scaffold()
{
$form = $this->_getForm();
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($form);
return $file->generate();
}
示例2: getContents
public function getContents()
{
// Configuring after instantiation
$methodUp = new Zend_CodeGenerator_Php_Method();
$methodUp->setName('up')->setBody('// upgrade');
// Configuring after instantiation
$methodDown = new Zend_CodeGenerator_Php_Method();
$methodDown->setName('down')->setBody('// degrade');
$class = new Zend_CodeGenerator_Php_Class();
$class->setName('Migration_' . $this->getMigrationName())->setExtendedClass('Core_Migration_Abstract')->setMethod($methodUp)->setMethod($methodDown);
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($class)->setFilename($this->getPath());
return $file->generate();
}
示例3: indexAction
public function indexAction()
{
$this->_helper->layout()->title = 'PHP Persistent Class Generator';
$form = new Form_ClassGenerator_Class();
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
$formToClass = Model_ClassGenerator_FormToClass::createInstance($formData);
$class = $formToClass->toClass();
$file = new Zend_CodeGenerator_Php_File();
if ($formData['class'][Model_ClassGenerator_FormToClass::$withPersistenceKey]) {
$persistence = Model_ClassGenerator_Persistence::createInstance($class);
$persistentClass = $persistence->createPersistence();
$file->setClass($persistentClass);
} else {
$file->setClass($class);
}
$this->view->resultCode = htmlentities($file->generate());
} else {
$form->populate($formData);
}
}
$this->view->form = $form;
}
示例4: generateAction
/**
* Generate the action
*
* This is a gigantic method used to generate the actual Action code. It
* uses the properties, description, name, and routes passed to it.
*
* This method uses the Zend_CodeGenerator_Php_* family to identify and create the
* new files.
*
* @param string $name The name of the action
* @param array $properties An array of properties related to an action
* @param string $description A description for an action. Default false.
* @param string $route The custom route for that action. Default false.
*
* @return string A generated file.
*/
private function generateAction($name, $properties, $description = false, $route = false)
{
$docblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => 'Required parameters', 'tags' => array(new Zend_CodeGenerator_Php_Docblock_Tag(array('name' => 'var', 'datatype' => 'array', 'description' => 'An array of required parameters.')))));
$class = new Zend_CodeGenerator_Php_Class();
$class->setName('Action_' . $name);
$class->setExtendedClass('Frapi_Action');
$class->setImplementedInterfaces(array('Frapi_Action_Interface'));
$tags = array(array('name' => 'link', 'description' => 'http://getfrapi.com'), array('name' => 'author', 'description' => 'Frapi <frapi@getfrapi.com>'));
if ($route !== false) {
$tags[] = array('name' => 'link', 'description' => $route);
}
$classDocblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => 'Action ' . $name . ' ', 'longDescription' => $description !== false ? $description : 'A class generated by Frapi', 'tags' => $tags));
$class->setDocblock($classDocblock);
$class->setProperties(array(array('name' => 'requiredParams', 'visibility' => 'protected', 'defaultValue' => $properties, 'docblock' => $docblock), array('name' => 'data', 'visibility' => 'private', 'defaultValue' => array(), 'docblock' => new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => 'The data container to use in toArray()', 'tags' => array(new Zend_CodeGenerator_Php_Docblock_Tag(array('name' => 'var', 'datatype' => 'array', 'description' => 'A container of data to fill and return in toArray()'))))))));
$methods = array();
$docblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => 'To Array', 'longDescription' => "This method returns the value found in the database \n" . 'into an associative array.', 'tags' => array(new Zend_CodeGenerator_Php_Docblock_Tag_Return(array('datatype' => 'array')))));
$toArrayBody = ' ' . "\n";
if (!empty($properties)) {
foreach ($properties as $p) {
$toArrayBody .= '$this->data[\'' . $p . '\'] = ' . '$this->getParam(\'' . $p . '\', self::TYPE_OUTPUT);' . "\n";
}
}
$toArrayBody .= 'return $this->data;';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'toArray', 'body' => $toArrayBody, 'docblock' => $docblock));
$executeActionBody = '';
if (!empty($properties)) {
$executeActionBody = ' $valid = $this->hasRequiredParameters($this->requiredParams);
if ($valid instanceof Frapi_Error) {
return $valid;
}';
}
$executeActionBody .= "\n\n" . 'return $this->toArray();';
$docblockArray = array('shortDescription' => '', 'longDescription' => '', 'tags' => array(new Zend_CodeGenerator_Php_Docblock_Tag_Return(array('datatype' => 'array'))));
$docblock = new Zend_CodeGenerator_Php_Docblock(array());
$docblockArray['shortDescription'] = 'Default Call Method';
$docblockArray['longDescription'] = 'This method is called when no specific ' . 'request handler has been found';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'executeAction', 'body' => $executeActionBody, 'docblock' => $docblockArray));
$docblockArray['shortDescription'] = 'Get Request Handler';
$docblockArray['longDescription'] = 'This method is called when a request is a GET';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'executeGet', 'body' => $executeActionBody, 'docblock' => $docblockArray));
$docblockArray['shortDescription'] = 'Post Request Handler';
$docblockArray['longDescription'] = 'This method is called when a request is a POST';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'executePost', 'body' => $executeActionBody, 'docblock' => $docblockArray));
$docblockArray['shortDescription'] = 'Put Request Handler';
$docblockArray['longDescription'] = 'This method is called when a request is a PUT';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'executePut', 'body' => $executeActionBody, 'docblock' => $docblockArray));
$docblockArray['shortDescription'] = 'Delete Request Handler';
$docblockArray['longDescription'] = 'This method is called when a request is a DELETE';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'executeDelete', 'body' => $executeActionBody, 'docblock' => $docblockArray));
$docblockArray['shortDescription'] = 'Head Request Handler';
$docblockArray['longDescription'] = 'This method is called when a request is a HEAD';
$methods[] = new Zend_CodeGenerator_Php_Method(array('name' => 'executeHead', 'body' => $executeActionBody, 'docblock' => $docblockArray));
$class->setMethods($methods);
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($class);
return $file->generate();
}
示例5: array
} else {
$index_template_replacements = array("OBJECT_NICENAME" => $name, "THEME_GLOBAL_PATH_VAR_NAME" => "theme_global_path", "CREATE_NEW_URL" => "/" . $module_name . "/" . strtolower($name) . "/edit", "ROWSET_VAR" => strtolower($name), "THE_ID" => $identity_col, "INDEX_URL" => $index_url);
}
$index_template = Bolts_Common::replaceWithArray($index_template, $index_template_replacements);
file_put_contents($theme_dir . "/index.tpl", $index_template);
// add delete method
$delete_method = new Zend_CodeGenerator_Php_Method();
$delete_method_body = file_get_contents($basepath . "/modules/bolts/extras/crudify_templates/deleteAction.txt");
$delete_action_replacements = array("TABLE_OBJECT_VAR" => $table_object_var, "TABLE_CLASSNAME" => $object_name, "ROW_OBJECT_VAR" => $row_object_var, "THE_ID" => $identity_col, "OBJECT_NICENAME" => $name, "ROWSET_VAR" => strtolower($name), "DELETE_URL" => $delete_url, "INDEX_URL" => $index_url);
$delete_method_body = Bolts_Common::replaceWithArray($delete_method_body, $delete_action_replacements);
$delete_method->setName('deleteAction')->setBody($delete_method_body);
$controller_class->setMethod($delete_method);
// load delete template
$delete_template = file_get_contents($basepath . "/modules/bolts/extras/crudify_templates/delete.tpl");
if ($is_admin) {
$delete_template_replacements = array("OBJECT_NICENAME" => $name, "THEME_GLOBAL_PATH_VAR_NAME" => "admin_theme_global_path", "CREATE_NEW_URL" => "/" . $module_name . "/" . strtolower($name) . "admin/edit", "ROWSET_VAR" => strtolower($name), "THE_ID" => $identity_col, "DELETE_URL" => $delete_url, "INDEX_URL" => $index_url);
} else {
$delete_template_replacements = array("OBJECT_NICENAME" => $name, "THEME_GLOBAL_PATH_VAR_NAME" => "theme_global_path", "CREATE_NEW_URL" => "/" . $module_name . "/" . strtolower($name) . "/edit", "ROWSET_VAR" => strtolower($name), "THE_ID" => $identity_col, "DELETE_URL" => $delete_url, "INDEX_URL" => $index_url);
}
$delete_template = Bolts_Common::replaceWithArray($delete_template, $delete_template_replacements);
file_put_contents($theme_dir . "/delete.tpl", $delete_template);
$controller_file = new Zend_CodeGenerator_Php_File();
$controller_file->setClass($controller_class);
}
// Render the generated files
file_put_contents($basepath . "/modules/" . $module_name . "/models/" . $object_name . ".php", $model_file->generate());
if ($is_admin) {
file_put_contents($basepath . "/modules/" . $module_name . "/controllers/" . $name . "adminController.php", $controller_file->generate());
} else {
file_put_contents($basepath . "/modules/" . $module_name . "/controllers/" . $name . "Controller.php", $controller_file->generate());
}
示例6: create
/**
* Method create's new migration file
*
* @param string $module Module name
* @param null $migrationBody
* @param string $label
* @param string $desc
* @return string Migration name
*/
public function create($module = null, $migrationBody = null, $label = '', $desc = '')
{
$path = $this->getMigrationsDirectoryPath($module);
list($sec, $msec) = explode(".", microtime(true));
$_migrationName = date('Ymd_His_') . substr($msec, 0, 2);
if (!empty($label)) {
$_migrationName .= '_' . $label;
}
// Configuring after instantiation
$methodUp = new Zend_CodeGenerator_Php_Method();
$methodUp->setName('up')->setBody('// upgrade');
// Configuring after instantiation
$methodDown = new Zend_CodeGenerator_Php_Method();
$methodDown->setName('down')->setBody('// degrade');
//add description
if (!empty($desc)) {
$methodDesc = new Zend_CodeGenerator_Php_Method();
$methodDesc->setName('getDescription')->setBody("return '" . addslashes($desc) . "'; ");
}
if ($migrationBody) {
if (isset($migrationBody['up'])) {
$upBody = '';
foreach ($migrationBody['up'] as $query) {
$upBody .= '$this->query(\'' . $query . '\');' . PHP_EOL;
}
$methodUp->setBody($upBody);
}
if (isset($migrationBody['down'])) {
$downBody = '';
foreach ($migrationBody['down'] as $query) {
$downBody .= '$this->query(\'' . $query . '\');' . PHP_EOL;
}
$methodDown->setBody($downBody);
}
}
$class = new Zend_CodeGenerator_Php_Class();
$className = (null !== $module ? ucfirst($module) . '_' : '') . 'Migration_' . $_migrationName;
$class->setName($className)->setExtendedClass('Core_Migration_Abstract')->setMethod($methodUp)->setMethod($methodDown);
if (isset($methodDesc)) {
$class->setMethod($methodDesc);
}
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($class)->setFilename($path . '/' . $_migrationName . '.php')->write();
return $_migrationName;
}
示例7: create_action
/**
*
* @param string $pAction
* @return string
*/
public function create_action($pAction = NULL, $pParams = NULL)
{
$action = $pAction ? $pAction : $this->get_action();
if ($pParams && array_key_exists('view_body', $pParams)) {
$view_body = $pParams['view_body'];
unset($pParams['view_body']);
} else {
$view_body = '';
if ($pParams && is_array($pParams) && count($pParams)) {
foreach ($pParams as $param) {
if (is_array($param)) {
list($name, $alias, $default) = $param;
$default = trim($default);
} elseif (!trim($param)) {
continue;
} else {
$name = $alias = trim($param);
$default = NULL;
}
$name = trim($name);
if (!$name) {
continue;
}
ob_start();
?>
$this-><?php
echo $name;
?>
;
<?php
$view_body .= ob_get_clean();
}
}
}
$file = $this->controller_reflection();
$c = $file->getClass($this->controller_class_name());
$aname = "{$action}Action";
$class = Zend_CodeGenerator_Php_Class::fromReflection($c);
if (!$class->hasMethod($aname)) {
$body = '';
$reflect = '';
if ($pParams && is_array($pParams) && count($pParams)) {
ob_start();
foreach ($pParams as $param) {
if (!trim($param)) {
continue;
} elseif (is_array($param)) {
list($name, $alias, $default) = $param;
$default = trim($default);
} else {
$name = $alias = trim($param);
$default = NULL;
}
$name = trim($name);
if (!$name) {
continue;
}
printf('$%s = $this->_getParam("%s", %s); ', $name, $alias, is_null($default) ? ' NULL ' : "'{$default}'");
ob_start();
printf('$this->view->%s = $%s;', $name, $name);
?>
<?php
$reflect .= ob_get_clean();
?>
<?php
}
$body = ob_get_clean() . "\n" . $reflect;
}
$old = $this->backup_controller();
$method = new Zend_CodeGenerator_Php_Method();
$method->setName($aname)->setBody($body);
$class->setMethod($method);
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($class);
$new_file = preg_replace('~[\\r\\n][\\s]*[\\r\\n]~', "\r", $file->generate());
file_put_contents($this->controller_path(), $new_file);
$view_path = $this->view_path($action);
if (!file_exists($view_path)) {
$dir = dirname($view_path);
if (!is_dir($dir)) {
mkdir($dir, 0775, TRUE);
}
file_put_contents($view_path, "<?\n\$this->placeholder('page_title')->set('');\n{$view_body}\n");
}
$exec = "diff {$this->_backup_path} {$this->controller_path()} ";
$diff = shell_exec($exec);
return array('old' => $old, 'new' => $new_file, 'diff' => $diff, 'backup_path' => $this->_backup_path, 'controller_path' => $this->controller_path());
}
}
示例8: create
/**
* Create (or modify) given class
*
* @param string $className
* @param Zend_CodeGenerator_Php_Class $class
*
* @return Zend_CodeGenerator_Php_Class
*/
public static function create($className, Zend_CodeGenerator_Php_Class $class = null)
{
// If no class data is given and the class already exists there's no point in "creating" it
if ($class == null and XDT_CLI_Helper::classExists($className)) {
return self::get($className);
}
// Only create class if the file is available or we have class data
$filePath = self::getClassPath($className);
$fileContents = file_exists($filePath) ? file_get_contents($filePath) : false;
if (empty($fileContents) or $class != null) {
// Load blank CodeGenerator file
$file = new Zend_CodeGenerator_Php_File();
// Create CodeGenerato Class if it wasn't provided as a parm
if ($class == null) {
$class = new Zend_CodeGenerator_Php_Class();
$class->setName($className);
}
// Append class to file
$file->setClass($class);
// Write to file
XDT_CLI_Helper::writeToFile($filePath, $file->generate(), true);
XDT_CLI_Abstract::getInstance()->printMessage("File: " . $filePath);
} else {
XDT_CLI_Abstract::getInstance()->bail("File already exists: " . $filePath);
}
return self::get($className);
}
示例9: gen
function gen($module, $controllerClassName, $label, $extendController, $defaultModel)
{
ini_set('display_errors', 1);
// $xml = App_Model_Config::getConfigFilePath($package) ;// APPLICATION_PATH . '/configs/' . $package . '-model-config.xml';
// $configFileName = basename($xml);
// $data = $config = new Zend_Config_Xml($xml, 'production');
// $classList = $data->classes;
// $project = $data->project;
//$createPackageFolder = true;
//$destinationFolder = $data->destinationDirectory;
if ('application' == $project) {
$createPackageFolder = false;
$destinationFolder = APPLICATION_PATH . "/" . $destinationFolder;
} elseif ('global' == $project) {
$createPackageFolder = true;
$destinationFolder = GLOBAL_PROJECT_PATH . "/" . $destinationFolder;
} else {
$createPackageFolder = true;
$destinationFolder = realpath(APPLICATION_PATH . "/../library");
}
$class = new Zend_CodeGenerator_Php_Class();
// $class->setAbstract(true);
$docblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => $modelName, 'longDescription' => 'This is a class generated with Zend_CodeGenerator.', 'tags' => array(array('name' => 'uses', 'description' => $extendController), array('name' => 'package', 'description' => $package), array('name' => 'subpackage', 'description' => 'Model'), array('name' => 'version', 'description' => '$Rev:$'), array('name' => 'update', 'description' => date('d/m/Y')), array('name' => 'license', 'description' => 'licensed By Patiwat Wisedsukol patiwat.wi@gmail.com'))));
//$docblock2 = new Zend_CodeGenerator_Php_Docblock();
$class->setDocblock($docblock);
$moduleClassName = ucfirst(preg_replace("/\\-(.)/e", "strtoupper('\\1')", $module));
$className = "{$moduleClassName}_{$controllerClassName}Controller";
$class->setName($className);
if ($extendController != '') {
$class->setExtendedClass($extendController);
}
if (trim($defaultModel) != '') {
//protected $_model = 'Hrm_Model_Personal';
$Prop[] = array('name' => "_model", 'visibility' => 'protected', 'defaultValue' => $defaultModel);
$class->setProperties($Prop);
}
$structure = APPLICATION_PATH . "/modules/" . $module . "/controllers/" . $controllerClassName . "Controller.php";
$tmp = explode("", $destinationFolder);
// foreach (){
// }
$controllerClassName2 = strtolower(preg_replace('/(?<=\\w)(?=[A-Z])/', "-\$1", $controllerClassName));
$structureView = APPLICATION_PATH . "/modules/" . $module . "/views/scripts/" . $controllerClassName2;
if (file_exists($structure)) {
print "The file {$structure} exists<br/>";
} else {
print "The file {$structure} does not exist<br/>";
echo "<br/>";
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($class);
//mkdir($structure, 0777, true);
file_put_contents($structure, $this->filecontentfix($file->generate()));
mkdir($structureView, 0, true);
$objFopen = fopen($structureView . "/index.phtml", "w");
fwrite($objFopen, "Index View");
fclose($objFopen);
echo "create [ ", $structure, " ] complete <br/>";
}
}
示例10: gen
//.........这里部分代码省略.........
/*
$Property = new Zend_CodeGenerator_Php_Property();
$pv = new Zend_CodeGenerator_Php_Property_DefaultValue($PropertyDataString);
$pv->setType(Zend_CodeGenerator_Php_Property_DefaultValue::TYPE_ARRAY);
$Property->setDefaultValue($pv);
$Property->setName('_propertyData');
$class->setProperty($Property);
*/
$method = new Zend_CodeGenerator_Php_Method();
$method->setName('__construct');
$method->setBody("parent::__construct ( \$options, '{$modelName}');");
$method->setParameters(array(array('name' => 'options', 'type' => 'array', 'defaultValue' => null)));
$class->setMethod($method);
foreach ($Methods as $name) {
$method = new Zend_CodeGenerator_Php_Method();
$method->setName('set' . strtoupper(substr($name, 0, 1)) . substr($name, 1, strlen($name)));
$method->setBody(" \n \n\t\t \$this->_{$name} = \${$name}; \n\n\t\treturn \$this; \n ");
$method->setParameter(array('name' => $name));
$docblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => "Set the {$name} property", 'tags' => array(array('name' => 'param', 'description' => "\${$name} the \${$name} to set"), array('name' => 'return', 'description' => $modelName))));
$method->setDocblock($docblock);
$class->setMethod($method);
}
foreach ($Methods as $name) {
$method = new Zend_CodeGenerator_Php_Method();
$method->setName('get' . strtoupper(substr($name, 0, 1)) . substr($name, 1, strlen($name)));
$method->setBody(" \n \n\t\treturn \$this->_{$name}; \n\n\t\t\n\t\t");
$docblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => "get the {$name} property", 'tags' => array(array('name' => 'return', 'description' => "the {$name}"))));
$method->setDocblock($docblock);
$class->setMethod($method);
}
$method = new Zend_CodeGenerator_Php_Method();
$method->setParameter(array('name' => 'id'));
$method->setStatic(true);
$method->setName('getObjectByID');
$method->setBody("\n \n \n \$obj = new {$modelName}();\n\t\t \n \$obj->find(\$id);\n\t\t \n return \$obj;\n\t\t ");
$docblock = new Zend_CodeGenerator_Php_Docblock(array('shortDescription' => "get Singleton {$modelName}", 'tags' => array(array('name' => 'return', 'description' => "{$modelName}"))));
$method->setDocblock($docblock);
$class->setMethod($method);
////////////Gen Method Form Config/////////////////
$tostringCreated = false;
if (isset($attr->method->name)) {
$this->addMethod($attr->method, $class);
} else {
if (is_array($attr->method)) {
foreach ($attr->method as $methodConfig) {
$this->addMethod($methodConfig, $class);
}
}
}
//ถ้ายังไม่มี __tostrint จะ เพิ่มให้ แต่จะ return ค่าว่าง
if (false == $this->_isTostringCreated()) {
$method = new Zend_CodeGenerator_Php_Method();
$method->setName('__toString');
$method->setBody("\n\n\t\t \n return '';\n\t\t ");
$class->setMethod($method);
}
///////////////////////END GEN METHOD///////////////////////////////
$file = new Zend_CodeGenerator_Php_File();
$file->setClass($class);
$package = ucfirst(strtolower($package));
// Acc/Model/
if (false == $createPackageFolder) {
$modelPath = str_replace(ucfirst(strtolower($package)) . "_Model_", "", $modelName);
} else {
$modelPath = $modelName;
}
$modelPath = str_replace("_", "/", $modelPath);
//$structure = dirname ( __FILE__ )."/{$modelName}";
echo $destinationFolder . "/" . $modelPath;
$structure = realpath($destinationFolder) . "/" . $modelPath;
//"D:\workspaces\privatework\jiranan\private\library/"."/{$modelName}";
if (!is_dir($structure)) {
mkdir($structure, 0777, true);
}
$filecontent = $this->filecontentfix($file->generate());
file_put_contents($structure . "/Abstract.php", $filecontent);
echo "create [ ", $structure, "/Abstract.php ] complete <br/>";
// $structure2 = dirname ( __FILE__ )."/".$modelName.".php";
$structure2 = realpath($destinationFolder) . "/{$modelPath}.php";
//"D:\workspaces\privatework\jiranan\private\library/".$modelName.".php";
// echo file_exists ($structure2 ==true)? 'true' : 'false';
echo "<br/>";
if (file_exists($structure2)) {
print "The file {$structure2} exists<br/>";
} else {
print "The file {$structure2} does not exist<br/>";
echo "<br/>";
$file2 = new Zend_CodeGenerator_Php_File();
$file2->setClass($class2);
//mkdir($structure, 0777, true);
file_put_contents($structure2, $this->filecontentfix($file2->generate()));
echo "create [ ", $structure2, " ] complete <br/>";
}
echo "===================================================<br/>";
}
// Render the generated file
//echo $file;
}