Hello, we just researched a Php to Ruby compilation software,
because our client has some Php Project,
and that can accelarates their transition to rails,
and there are a lot of php projects out there, both open sourced and
close
sourced,
so this software may be helpful to accelarates the changes from php
world to
ruby’s world.
(Besides, some clouds, like VMWare cloudfoundry supports rails now, you
can
compile your php’s
project into rails and runs ontop of it).
This project compiles php code to ruby code as close as possbile,
so the following php code would compile to this code,
$instanceName = ‘db’;
$config = $sugar_config[‘dbconfig’];
if(!isset($dbinstances)){
$dbinstances = array();
}
//fall back to the default instance name
if(empty($sugar_config[‘db’][$instanceName])){
$instanceName = ‘’;
}
if(!isset($dbinstances[$instanceName])){
$my_db_manager = ‘MysqlManager’;
if( $config[‘db_type’] == “mysql” ) {
if ((!isset($sugar_config[‘mysqli_disabled’])
|| $sugar_config[‘mysqli_disabled’] ==
false)
&& function_exists(‘mysqli_connect’)) {
$my_db_manager = ‘MysqliManager’;
}
}
if( $config[‘db_type’] == “oci8” ){
}
elseif( $config[‘db_type’] == “mssql” ){
if ( function_exists(‘sqlsrv_connect’)
&& (empty($config[‘db_mssql_force_driver’]) ||
$config[‘db_mssql_force_driver’] == ‘sqlsrv’ ))
$my_db_manager = ‘SqlsrvManager’;
elseif (is_freetds()
&& (empty($config[‘db_mssql_force_driver’]) ||
$config[‘db_mssql_force_driver’] == ‘freetds’ ))
$my_db_manager = ‘FreeTDSManager’;
else
$my_db_manager = ‘MssqlManager’;
}
$GLOBALS[‘log’]->info(“using $my_db_manager DBManager
backend”);
if(!empty($config[‘db_manager’])){
$my_db_manager = $config[‘db_manager’];
}
require_once("include/database/{$my_db_manager}.php");
$dbinstances[$instanceName] = new $my_db_manager();
$dbinstances[$instanceName]->getHelper();
$dbinstances[$instanceName]->connect($config, true);
$dbinstances[$instanceName]->count_id = $count;
$dbinstances[$instanceName]->references = 0;
$dbinstances[$instanceName]->getHelper()->db =
$dbinstances[$instanceName];
}
else {
$old_count++;
$dbinstances[$instanceName]->references = $old_count;
}
#to this ruby code
_VARS[“instanceName”] = “db”
_VARS[“config”] = ((_VARS[“sugar_config”] ||= { }))[“dbconfig”]
if (not isset(_VARS[“dbinstances”]).php_true_value).php_true_value
then
_VARS[“dbinstances”] = PhpArray.new
end
if empty((((_VARS[“sugar_config”] ||= { })[“db”] ||= {
}))[_VARS[“instanceName”]]).php_true_value then
_VARS[“instanceName”] = “”
end
if (not isset(((_VARS[“dbinstances”] ||= {
}))[_VARS[“instanceName”]]).php_true_value).php_true_value then
_VARS[“my_db_manager”] = “MysqlManager”
if (((_VARS[“config”] ||= { }))[“db_type”] ==
“mysql”).php_true_value
then
if (((not isset(((_VARS[“sugar_config”] ||= {
}))[“mysqli_disabled”]).php_true_value).php_true_value or
(((_VARS[“sugar_config”] ||= { }))[“mysqli_disabled”] ==
false).php_true_value).php_true_value and self.function_exists(binding,
“mysqli_connect”).php_true_value).php_true_value then
_VARS[“my_db_manager”] = “MysqliManager”
end
end
if (((_VARS[“config”] ||= { }))[“db_type”] ==
“oci8”).php_true_value
then
nil
else
if (((_VARS[“config”] ||= { }))[“db_type”] == “mssql”) then
if (self.function_exists(binding,
“sqlsrv_connect”).php_true_value
and (empty(((_VARS[“config”] ||= {
}))[“db_mssql_force_driver”]).php_true_value or (((_VARS[“config”] ||=
{
}))[“db_mssql_force_driver”] ==
“sqlsrv”).php_true_value).php_true_value).php_true_value then
_VARS[“my_db_manager”] = “SqlsrvManager”
else
if (self.is_freetds(binding).php_true_value and
(empty(((_VARS[“config”] ||= {
}))[“db_mssql_force_driver”]).php_true_value
or (((_VARS[“config”] ||= { }))[“db_mssql_force_driver”] ==
“freetds”).php_true_value).php_true_value) then
_VARS[“my_db_manager”] = “FreeTDSManager”
else
_VARS[“my_db_manager”] = “MssqlManager”
end
end
end
end
_GLOBALS[“log”].info(binding, “using #{_VARS[“my_db_manager”]}
DBManager backend”)
if (not empty(((_VARS[“config”] ||= {
}))[“db_manager”]).php_true_value).php_true_value then
_VARS[“my_db_manager”] = ((_VARS[“config”] ||= {
}))[“db_manager”]
end
_require_once(“include/database/#{_VARS[“my_db_manager”]}.php”,
binding)
(_VARS[“dbinstances”] ||= { })[_VARS[“instanceName”]] =
HomeController.const_get(_VARS[“my_db_manager”]).new(binding)
((_VARS[“dbinstances”] ||= {
}))[_VARS[“instanceName”]].getHelper(binding)
((_VARS[“dbinstances”] ||= {
}))[_VARS[“instanceName”]].connect(binding, _VARS[“config”], true)
((_VARS[“dbinstances”] ||= { }))[_VARS[“instanceName”]].count_id
_VARS[“count”]
((_VARS[“dbinstances”] ||= {
}))[_VARS[“instanceName”]].references =
0
((_VARS[“dbinstances”] ||= {
}))[_VARS[“instanceName”]].getHelper(binding).db =
((_VARS[“dbinstances”]
||= { }))[_VARS[“instanceName”]]
else
_VARS[“old_count”] = _VARS[“old_count”].+(1)
((_VARS[“dbinstances”] ||= {
}))[_VARS[“instanceName”]].references =
_VARS[“old_count”]
end
So we are going to release this to public.
$2500, one license ,up to 5 people’s use.
Anybody Interested? Talk to me.
my gmail is just this.
Best Regards.
femto