如何从CodeIgniter访问Magento?
我有一个默认的CodeIgniter 2.1安装,Magento 10.4.4安装在名为store的子目录中 从web根目录运行(禁用.htaccess)时,以下代码有效。它将给出登录的Magento用户的名字和姓氏如何从CodeIgniter访问Magento?,codeigniter,magento,Codeigniter,Magento,我有一个默认的CodeIgniter 2.1安装,Magento 10.4.4安装在名为store的子目录中 从web根目录运行(禁用.htaccess)时,以下代码有效。它将给出登录的Magento用户的名字和姓氏 <?php $site_root = '/var/www/mysite/www/httpdocs'; require_once ($site_root . '/store/app/Mage.php'); umask(0); // Initialize Magento and
<?php
$site_root = '/var/www/mysite/www/httpdocs';
require_once ($site_root . '/store/app/Mage.php');
umask(0);
// Initialize Magento and hide sensitive config data below site root
$name='frontend';
$options = array('etc_dir' => realpath('../magento-etc'));
Mage::app('default','store', $options);
Mage::getSingleton("core/session", array("name" => $name));
$websiteId = Mage::app()->getWebsite()->getId();
echo "websiteid: $websiteId<br>";
$store = Mage::app()->getStore();
$customer = Mage::getModel("customer/customer");
$customer->website_id = $websiteId;
$customer->setStore($store);
echo 'customerwebsiteId: ' . $customer->website_id . '<br>';
$session = Mage::getSingleton('customer/session');
$magento_message = 'Welcome ';
// Generate a personalize greeting
if($session->isLoggedIn()){
$magento_message .= $session->getCustomer()->getData('firstname').' ';
$magento_message .= $session->getCustomer()->getData('lastname').'!';
}else{
$magento_message .= 'Guest!';
}
echo $magento_message;
?>
CodeIgniter正在做一些我还无法跟踪的事情。返回的网站ID正确,但isLoggedIn
返回false
有人有什么想法吗?谢谢 我两种都用,但我从来没有试过那样捣碎它们。我预见到不少问题 你是怎么进入magento的 您可能需要运行两个db连接:
$db['magento']
$db['default'] // codeigniter default
会话和配置数据在这里也可能成为一个真正的问题
现在考虑使用magento,然后可能通过RESTFul服务修补您的博客/网站。我使用这两种服务,但我从未尝试过这样将它们捣碎。我预见到不少问题 你是怎么进入magento的 您可能需要运行两个db连接:
$db['magento']
$db['default'] // codeigniter default
会话和配置数据在这里也可能成为一个真正的问题
现在考虑使用magento,然后可能通过RESTFul服务修补您的博客/网站。以上两个代码示例都可以正常工作。我遇到的问题是调用CodeIgniter index.php文件顶部附近的session_start()。一旦被移除,一切都开始起作用 对于子孙后代,这里是CodeIgniter 2.1的Magento 10库: application/libraries/magento.php
<?php if ( ! defined('BASEPATH')) exit("No direct script access allowed");
Class Magento {
function __construct($params)
{
global $site_root;
$name = $params['name'];
// Include Magento application
require_once ($site_root . '/store/app/Mage.php');
umask(0);
// Initialize Magento and hide sensitive config data below site root
// Uncomment next line if you have moved app/etc
// $options = array('etc_dir' => realpath('../magento-etc'));
Mage::app('default','store', $options=null);
return Mage::getSingleton("core/session", array("name" => $name));
}
}
// end of magento.php
以上两个代码示例都可以正常工作。我遇到的问题是调用CodeIgniter index.php文件顶部附近的session_start()。一旦被移除,一切都开始起作用
对于子孙后代,这里是CodeIgniter 2.1的Magento 10库:
application/libraries/magento.php
<?php if ( ! defined('BASEPATH')) exit("No direct script access allowed");
Class Magento {
function __construct($params)
{
global $site_root;
$name = $params['name'];
// Include Magento application
require_once ($site_root . '/store/app/Mage.php');
umask(0);
// Initialize Magento and hide sensitive config data below site root
// Uncomment next line if you have moved app/etc
// $options = array('etc_dir' => realpath('../magento-etc'));
Mage::app('default','store', $options=null);
return Mage::getSingleton("core/session", array("name" => $name));
}
}
// end of magento.php
谢谢你的回答,Philip。Codeigniter指向magento数据库。我的第一个magento代码示例在Codeigniter之外运行良好。我最终将创建一个CodeIgniter网站,在页面上显示Magento块。我需要有人知道CodeIgniter,并能猜出为什么我的工作magento代码无法从CodeIgniter模型中工作。我不确定为什么会话或配置数据会造成问题。就像我说的,这是有效的,只是不在CodeIgniter中。谢谢你的回答,Philip。CodeIgniter指向magento数据库。我的第一个magento代码示例在Codeigniter之外运行良好。我最终将创建一个CodeIgniter网站,在页面上显示Magento块。我需要有人知道CodeIgniter,并能猜出为什么我的工作magento代码无法从CodeIgniter模型中工作。我不确定为什么会话或配置数据会造成问题。正如我所说,这是可行的,只是在CodeIgniter中不行;它一直在抛出错误,但当我编写Mage::app()时;一切都很好谢谢你的评论,阿什拉夫!!但这已经解决了。我的答案显示了一个工作示例。我只是想帮助任何人面对我遇到的相同问题。代码很棒。它帮助了我很多,节省了很多时间。请使用FCPATH而不是库中的$site\u root。谢谢你的脚本…我可以在另一个框架中使用相同的代码示例吗?例如,Slim?当我使用Mage::app('default','store',$options=null)时;它一直在抛出错误,但当我编写Mage::app()时;一切都很好谢谢你的评论,阿什拉夫!!但这已经解决了。我的答案显示了一个工作示例。我只是想帮助任何人面对我遇到的相同问题。代码很棒。它帮助了我很多,节省了很多时间。请使用FCPATH而不是库中的$site\u root。谢谢你的脚本…我可以在另一个框架中使用相同的代码示例吗?例如,斯利姆?