小编ako*_*ond的帖子

ZF2 Dafault数据库会话存储

我正在忙于编写数据库会话模块,因此我可以在多个应用程序之间快速安装它.该模块将作为要启动的第一个模块从自动装载器加载.我想要完成的是将默认会话容器/会话处理程序更改为所有模块的默认会话处理程序,它也应该是数据库托管会话.我已经与zf2会话处理程序争论了很长一段时间,并且日志中的错误有意义.所以我到目前为止所拥有的.Module.php的基本模块包含...

命名空间DBSession;

use Zend\Mvc\ModuleRouteListener;

class Module {

    public function onBootstrap($e) {
        $e->getApplication()->getServiceManager()->get('translator');
        $eventManager = $e->getApplication()->getEventManager();
        $moduleRouteListener = new ModuleRouteListener();
        $moduleRouteListener->attach($eventManager);
        $config = $e->getApplication()->getServiceManager()->get('Config');
        $controller = $e->getTarget();
        $controller->config = $config;
        new \DBSession\Storage\DBStorage();
    }

    public function getConfig() {
        return include __DIR__ . '/config/module.config.php';
    }

    public function getAutoloaderConfig() {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

以及启动数据库会话处理程序的实际类.

namespace DBSession\Storage;

use Zend\Session\SaveHandler\DbTableGateway;
use Zend\Session\SaveHandler\DbTableGatewayOptions; …
Run Code Online (Sandbox Code Playgroud)

database session zend-framework2

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

zend框架2控制器中的基本路径访问

如何在ZF 2中的控制器中调用basePath助手.我必须重定向到我需要基本路径的特定URL.return $ this-> redirect() - > toUrl($ basePath.'/ application/rent/search');

zend-framework2

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

在 Clojure 中调试线程宏 -> 或 ->>

我想了解为该问题设计的以下代码是如何工作的:“给定一个整数序列,找到一个使其元素总和最大化的连续子序列”

defn max-subseq-sum [coll]
(->> (take-while seq (iterate rest coll)) ; tails (1)
   (mapcat #(reductions conj [] %)) ; inits   (2)
   (apply max-key #(reduce + %)))) ; max sum
Run Code Online (Sandbox Code Playgroud)

所以我想看看表格 (1)、(2) 和其他表格的输出。我可以在 Cursive 中设置断点,但我不知道如何获得这些值。我试图定义一个语言环境变量,例如

(defn max-subseq-sum [coll]
 (->> (take-while seq (iterate rest coll)) ; tails
      (let [d #(reductions conj [] %)]
       d  ) ; inits
      (apply  max-key #(reduce + %)))
 )

(max-subseq-sum [-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1])
Run Code Online (Sandbox Code Playgroud)

但我仍然不明白如何看到 d,例如

如何解决这个问题呢?

debugging clojure

4
推荐指数
2
解决办法
594
查看次数

Zend Framework 2中的奇怪表单验证行为

在提交和验证我的Zend Framework 2表单时,我遇到的是奇怪的行为.我已将表格缩减为三个元素以证明我的意思,但问题也存在于其他元素中.

我有两个要素; 电子邮件和性别.我没有InputFilter为我的表单指定一个,所以我的逻辑告诉我我的表单是有效的.但是,当我提交表单并进行验证检查时,电子邮件和性别元素会Value is required and can't be empty出错.但是,我没有明确表示他们是必需的,也不能是空的.

我的电子邮件元素类型Zend\Form\Element\Email,我怀疑它可能与它有关,因为如果我改变它Zend\Form\Element\Text,一切都很好.但是,如果我想要一个不需要的电子邮件字段呢?

接下来,我的性别选择元素给了我同样的错误.我设置了空选项,但我认为这只是用于使用默认值,例如"选择您的性别",但它没有添加必需的约束.看来,如果我删除这个空选项,那么我不会收到此错误.这个错误也很奇怪的是,如果我不选择性别并提交我的表单,那么在回发的下拉列表中会选择不同的选项.在这种情况下,我使用空选项("选择您的性别")提交表单,但是在刷新表单时,所选选项将更改为"女性"."Female"选项的值为0,但是如果我将值更改为3,则可以正常工作.但是,如果我需要在其中一个选项中使用值0,该怎么办?也许它' 由类型转换或其他东西引起的.我真的不知道.

以下是我的代码.我写了一些评论,因此可能更容易理解.

表格类摘录:

// E-mail (generates "Value is required and can't be empty" - but what if the field should be optional? Where is this validator added?
        $email = new Element\Email('email'); // If I change to "Element\Text", there are no problems
        $email->setLabel('E-mail address');

        $email->setLabelAttributes(array(
                                        'for' => $email->getName(),
                                        'class' => 'some class'
                                   ));

        $email->setAttributes(array(
                                   'id' => $email->getName(),
                                   'placeholder' => …
Run Code Online (Sandbox Code Playgroud)

php validation zend-form zend-framework2

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

Zend Framework 2使用别名多次连接同一个表

我正在努力将多个左连接实现到 ZF2 中。我已经有第一个工作了,但是当我添加另一个时,它就不起作用了。

这是我应该在 zf2 中实现的工作 SQL 查询:

SELECT 
    ac.ctr_id AS ctr_id,
    ac.ctr_no AS ctr_no,
    ac.ctr_marketer AS marketer,
    ac.ctr_manager AS manager,
    ac.ctr_recruiter AS recruiter,
    l1.emp_realname AS marketer,
    l2.emp_realname AS co_recruiter_manager,
    l3.emp_realname AS recruiter
FROM
    allcontracts AS ac
        JOIN
    lstemployees AS le ON ac.ctr_recruiter = le.emp_id
        LEFT JOIN
    lstemployees AS l2 ON ac.ctr_manager = l2.emp_id
        LEFT JOIN
    lstemployees AS l3 ON ac.ctr_recruiter = l3.emp_id
        LEFT JOIN
    lstemployees AS l1 ON ac.ctr_marketer = l1.emp_id
Run Code Online (Sandbox Code Playgroud)

从我的模型:

.....

      $where = new Where();
      $this->table='allcontracts';

      $select …
Run Code Online (Sandbox Code Playgroud)

php mysql zend-framework2

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

如何在Zend Framework 2中配置依赖注入?

免责声明:我是Zend的完全菜鸟.

我正在评估Zend Framework 2的工作,并尝试将其配置为使用ZfTwig进行模板化.(见这里:https://github.com/mtymek/ZfTwig)

我完成Step 3了配置确定,但我无法弄明白Step 4.

我尝试将以下内容放入application.config,但没有好处.

我应该把它放在哪里?

return array(
    'di' => array(
        'instance' => array(
            // setup other stuff...
            // ...

            // setup view script resolvers - very similar to configuration
            // from ZendSkeletonApplication
            'Zend\View\Resolver\AggregateResolver' => array(
                'injections' => array(
                    'Zend\View\Resolver\TemplateMapResolver',
                    'ZfTwig\TemplatePathStack',
                ),
            ),
            'Zend\View\Resolver\TemplateMapResolver' => array(
                'parameters' => array(
                    'map'  => array(
                        'layout/layout' => __DIR__ . '/../view/layout/layout.twig',
                    ),
                ),
            ),
            'ZfTwig\TemplatePathStack' => array( …
Run Code Online (Sandbox Code Playgroud)

php dependency-injection twig zend-framework2

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

使用Zend框架2的SOAP客户端

我正在尝试在Zend框架2中创建一个SOAP客户端,我创建了下面的正确返回数据

try {
  $client = new Zend\Soap\Client("http://www.webservicex.net/country.asmx?WSDL");
  $result = $client->GetCountries();      
  print_r($result);
} catch (SoapFault $s) {
  die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring);
} catch (Exception $e) {
  die('ERROR: ' . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将数据发送到Web服务时,例如使用

try {
  $client = new Zend\Soap\Client("http://www.webservicex.net/country.asmx?WSDL");
  $result = $client->GetCurrencyByCountry('Australia');
  print_r($result);
} catch (SoapFault $s) {
  die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring);
} catch (Exception $e) {
  die('ERROR: ' . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

我刚收到以下消息

ERROR: [soap:Receiver] System.Web.Services.Protocols.SoapException: Server was unable to process request. …
Run Code Online (Sandbox Code Playgroud)

php soap soap-client zend-framework2

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

在没有模板的情况下在Zend Framework 2中进行重定向

我正在尝试从route/admin重定向到/ admin/post/list.

我设置了从/ admin到IndexController :: indexAction()的路由

然后我像这样做了控制器

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        $this->redirect()->toRoute('postList');
    }
}
Run Code Online (Sandbox Code Playgroud)

它运行良好,但ZF2需要制作模板index/index.phtml.

如何在没有空模板的情况下更好地重定向?

php redirect templates zend-framework2

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

如何仅加载Zend Framework 2数据库模块

Zend Framework 2声称具有"随意使用"设计,允许您轻松使用其任何模块而无需承诺完整堆栈.我需要一个好的数据库访问层,从网上的文档和推荐我喜欢Zend\Db的外观.我已将Zend/Db文件夹放在我的/ lib目录中,但是我无法让PHP识别Zend\Db\Adapter\Adapter类.当我尝试使用它时,我不断收到致命错误:

致命错误:第6行/home/username/public_html/test.php中找不到类'Zend\Db\Adapter\Adapter'

我试过在我的.htaccess中设置ZF2_PATH: SetEnv ZF2_PATH /home/username/public_html/lib/Zend

我已经尝试在我的代码中设置包含路径: set_include_path( $_SERVER['DOCUMENT_ROOT'] . '/lib' . PATH_SEPARATOR . get_include_path() );

我已经尝试显式加载和实例化Zend\Loader:

require_once 'lib/Zend/Loader/StandardAutoloader.php';
$zendLoader = new Zend\Loader\StandardAutoloader();
$zendLoader->register();
Run Code Online (Sandbox Code Playgroud)

这些都没有任何影响.我试图明确要求的Zend/DB /适配器/ Adapter.php,并没有解决我看到的错误,但我只是得到了同样的错误了它的一个依赖,所以这不是一个可行的解决方案.

我在这做错了什么?ZF2是不是真的设计用于这种模块化使用,还是我错过了什么?

编辑:我通过编写自己的自动加载功能来实现这一点:

function autoloader($class) {
    $path = explode('\\', $class);
    foreach ($path as $p) {
        $cp .= DIRECTORY_SEPARATOR . $p;
    }
    include __DIR__ . '/lib/' . $cp . '.php';
}
spl_autoload_register(autoloader);
Run Code Online (Sandbox Code Playgroud)

这种有意义 - 很明显,如果我不使用框架的其余部分DB模块,我不能指望框架为我做自动装填 - 除了我仍然不明白为什么手动装载的Zend \装载机没有解决问题.是不是处理自动加载Zend\Loader的问题?无论如何,我现在有一个可行的解决方案,但如果有更好的解决方案,我很乐意听到它.

php database-abstraction zend-framework2

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

clojurescript 试剂互换!原子否定原子值

我试图反转试剂原子的值 changeval

(def changeval(reagent/atom 0))
...
...
[:input {:type "button" :value "Invert!"
            :on-click #(swap! changeval(not= changeval0 ) ) }]
Run Code Online (Sandbox Code Playgroud)

什么也没发生,我怎样才能使 changeval = NOT(changeval)

clojurescript reagent

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