小编Gre*_*bes的帖子

如何获取对象的不合格(短)类名?

如何在PHP名称间隔环境中检查对象的类,而不指定完整的命名空间类.

例如,假设我有一个对象库/实体/合同/名称.

以下代码不起作用,因为get_class返回完整的命名空间类.

If(get_class($object) == 'Name') {
... do this ...
}
Run Code Online (Sandbox Code Playgroud)

namespace magic关键字返回当前命名空间,如果测试对象具有另一个命名空间,则该命名空间无效.

我可以简单地用命名空间指定完整的类名,但这似乎锁定了代码的结构.如果我想动态更改名称空间,也没什么用处.

任何人都可以想到一个有效的方法来做到这一点.我猜一个选项是正则表达式.

php namespaces class

138
推荐指数
11
解决办法
9万
查看次数

ZF2中Zend\Db如何控制交易?

ZF1 Zend_Db参考手册有关于执行事务的整个部分.

ZF2的Zend\Db的参考手册,缺乏对交易的任何文件.

如何在ZF2中执行交易?示例代码会很有帮助.

php mysql transactions zend-db zend-framework2

18
推荐指数
3
解决办法
1万
查看次数

Zend Framework 2:路由器"解析为无效的控制器类或别名:"

我正在寻找ZF2路由器配置的一些帮助.

我想在开发环境中向单个模块添加多个控制器,尽管最终必须弄清楚如何指定特定的路由.

为此,我目前正在尝试使用MVC快速入门文档中指定的通用module.config.然而,这似乎没有像ZF2文档所建议的那样执行.

http://framework.zend.com/manual/2.0/en/modules/zend.mvc.quick-start.html

文档说明:

"ZendSkeletonApplication提供了一个"默认路由",可能会让你进行此操作.该路由基本上需要"/ {module}/{controller}/{action}",它允许你指定:"/ zend-user /你好/世界".我们将在这里创建一条主要用于说明目的的路线,因为建议使用明确的路线."

但是,控制器渲染/ landlord,/ landlord/home/index,而不是/ landlord/sandbox/index.家庭和沙箱是控制器.Sandbox的命名遵循命名约定"SandboxController".我的看法是,文档中代码的child_routes部分可能需要我错过的某种修改.

在沙箱实例中,我在404错误页面上收到此错误.

Landlord\Controller\Sandbox(解析为无效的控制器类或别名:Landlord\Controller\Sandbox)

我尝试将'Landlord\Controller\Sandbox'=>'Landlord\Controller\SandboxController'添加到invokables,但这会产生错误.

我的控制器如下:

return array(
'controllers' => array(
    'invokables' => array(
        'Landlord\Controller\Home' => 'Landlord\Controller\HomeController',

    ),
),
'router' => array(
    'routes' => array(
        'landlord' => array(
            'type'    => 'Literal',
            'options' => array(
                // Change this to something specific to your module
                'route'    => '/landlord',
                'defaults' => array(
                    // Change this value to reflect the namespace in which
                    // the controllers for your module are found
                    '__NAMESPACE__' => …
Run Code Online (Sandbox Code Playgroud)

router module zend-framework2

11
推荐指数
1
解决办法
2万
查看次数

我可以通过 Google API v3 访问其他 Google 用户的日历吗

我想构建一个应用程序,在用户未登录时代表我的用户管理 Google 日历中的约会。

该应用程序将是一个预订服务,订阅用户(我们的服务提供商)将预订他们不可用的时间,客户将看到服务提供商谷歌日历的忙/闲表示

该应用程序需要能够创建、删除和读取约会。

我已进入 Google Developer's Console 并拥有可弹出 Google 权限屏幕的工作代码,然后重定向到成功创建新约会的 Url。

我可以访问其他日历,但前提是他们当时登录了 Google 服务。

$client = new \Google_Client(); 
$client->addScope('https://www.googleapis.com/auth/calendar');
$service = new \Google_Service_Calendar($client);

$authUrl = $client->createAuthUrl();
Run Code Online (Sandbox Code Playgroud)

如果用户正在管理他们自己的日历,这可以正常工作。但是,我想代表他们管理约会。这将包括其他各方在日历中输入约会 - 即当日历未登录时。

我需要的是应用程序获得持久访问我用户日历的持久权限吗?

有谁知道这是否可能?关于我如何解决这个问题的想法将不胜感激。

php google-calendar-api google-api zend-framework2 google-client

3
推荐指数
1
解决办法
5277
查看次数

ZF2:我在哪里存储partialLoop模板文件?

有谁知道在哪里存储ZF2部分循环模板文件?

我将模板存储在标准Zend文件结构下的相关视图文件夹中.这在ZF1下有效.但是在尝试重新编码代码以使用ZF2时,我收到此错误?

Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException' with message
'Zend\View\Renderer\PhpRenderer::render: Unable to render template
 "listingsPartial.phtml"; resolver could not resolve to a file' in C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php:454 Stack trace: #0 C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Helper\Partial.php(73): 
Zend\View\Renderer\PhpRenderer->render('listingsPartial...') #1 C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Helper\PartialLoop.php(70): Zend\View\Helper\Partial->__invoke('listingsPartial...', Array) #2 [internal function]: Zend\View\Helper\PartialLoop->__invoke('listingsPartial...', Array) #3 C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php(355): 
 call_user_func_array(Object(Zend\View\Helper\PartialLoop), Array) #4 C:\zendProject\zf2\module\Landlord\view\landlord\home\index.phtml(42): 
 Zend\View\Renderer\PhpRenderer->__call
('p in C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php on line 454
Run Code Online (Sandbox Code Playgroud)

我对部分循环的调用如下所示:

 echo $this->partialLoop('listingsPartial.phtml',$model);
Run Code Online (Sandbox Code Playgroud)

调用它的模板和视图页面存储在同一文件中.我想知道是否需要在某处列出listingPartial模板,即在模块或配置文件中?

我的目录结构如下所示:

> zf2  
   -module   
         -moduleName    
            -view
>              -moduleName
>                 -controllerName
>                     - *the view file and partial template file are stored here-*
Run Code Online (Sandbox Code Playgroud)

任何建议赞赏.

php view zend-framework2

1
推荐指数
1
解决办法
2929
查看次数

更新javascript日期对象

我试图通过各种j/script本机日期对象方法更新日期对象,但很困惑为什么更改似乎应用于页面上的所有日期对象.

我最初发现了一个帖子,建议在日期原型中添加一个方法,但这改变了所有日期对象.然后我简化了,发现两个日期仍然在更新.我很感激有关如何防止这种情况的任何建议.我想要的是一个starTime和一个看起来有点像这样的endTime.(注意:我最终会变成一个功能).

time1 = new Date();
alert(time1);//returns Sat May 26 11:15:41 EDT 2012
time2=time1;
time2.setMinutes(time2.getMinutes()+10);
alert(time1); //returns Sat May 26 11:25:41 EDT 2012
alert(time2);//returns Sat May 26 11:25:41 EDT 20112  
Run Code Online (Sandbox Code Playgroud)

问题:如果我只更新date2,为什么date2 = date1.

javascript date object

0
推荐指数
1
解决办法
2917
查看次数

注入Service Manager以在ZF2中构建Doctrine存储库

如何将服务管理器注入Doctrine存储库以允许我检索Doctrine Entity Manager?

我使用ZF2-Commons DoctrineORMModule并且正在尝试实现Doctrine Tutorial(下面链接中的教程底部)中列出的存储库示例:

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started.html

但是,我不断收到一条消息" 致命错误:在C:\ zendProject\zf2 ... "中的非对象上调用成员函数get(),这表明我没有服务定位器的工作实例.

我的Doctrine存储库看起来像这样:

namespace Calendar\Repository;

use  Doctrine\ORM\EntityRepository,
     Calendar\Entity\Appointment,
     Calendar\Entity\Diary;

use Zend\ServiceManager\ServiceLocatorAwareInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

class ApptRepository extends EntityRepository implements ServiceLocatorAwareInterface 
{
   protected $services;

   public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
   {
       $this->services = $serviceLocator;
   }

   public function getServiceLocator()
   {
        return $this->services;
   }

  public function getUserApptsByDate()
  {
     $dql = "SELECT a FROM Appointment a";

     $em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');

     $query = $em()->createQuery($dql);

     return $query->getResult();
   }
}
Run Code Online (Sandbox Code Playgroud)

然后,我想使用以下模式在我的控制器中调用它:

$diary = $em->getRepository('Calendar\Entity\Appointment')->getUserApptsByDate();
Run Code Online (Sandbox Code Playgroud)

编辑:附加的链接表明我可能需要将类转换为服务,
/sf/answers/945615961/

但是,如果这是最佳路线,那么我将如何让我的Doctrine Entity了解该服务.目前,我在指向该类的doc块中包含一个注释. …

service doctrine dependency-injection zend-framework2

0
推荐指数
2
解决办法
7915
查看次数