Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从CodeIgniter访问Magento?_Codeigniter_Magento - Fatal编程技术网

如何从CodeIgniter访问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

我有一个默认的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 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。谢谢你的脚本…我可以在另一个框架中使用相同的代码示例吗?例如,斯利姆?