Hello all, because most of php's application is feature rich than rails's existing offer, like say, crm solutions, sugarcrm, I know rails have similar offering,( fat_free_crm), but unfornately, this is really far from the feature sugarcrm offers, sugarcrm has been developed since 2004, all 7 years, and has been funded $2 million in venture capital, I just don't think anyone could port that easily in a short time frame.
for hand-rewritten the php's application, well, that's at least theoretically, I've done that before, that's quite time-consuming and error-prone. On May 4, 3:47 pm, Andreas Saebjoernsen <andr...@digitalplaywright.com> wrote: > +1 this is a very bad idea. > > From what I understand this is sold as a tool for reusing custom PHP code > while you are rewriting your application in rails. How do you believe > generating Ruby code will help in this? It's seems a bit backwards. If you > wanted to reuse code, shouldn't you be calling that code natively from your > Ruby code? Maybe using a JSON interface? That is of cause assuming the PHP > code is modular to begin with. > > Best, > Andy > > > > > > > > On Tue, May 3, 2011 at 4:55 PM, femto Zheng <femto...@gmail.com> wrote: > > 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 > > > -- > > You received this message because you are subscribed to the Google Groups > > "Ruby on Rails: Talk" group. > > To post to this group, send email to rubyonrails-talk@googlegroups.com. > > To unsubscribe from this group, send email to > > rubyonrails-talk+unsubscr...@googlegroups.com. > > For more options, visit this group at > >http://groups.google.com/group/rubyonrails-talk?hl=en. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.