你知道除了Magento之外的任何开源Zend Framework应用程序以一种良好的OOP方式展示如何使用Zend Framework开发大型应用程序吗?
我现在的问题是,我非常擅长PHP和OOP,但我对Zend Framework知之甚少,以及应该如何解决它.
那么你知道任何展示ZF最佳实践的好应用吗?
谢谢!
我最近学会了使用Zend Framework.我做了一个简单的CRUD应用程序.但是现在我想使用现有的数据库来处理更复杂的应用程序,我想知道如何在模型中调用存储过程,如何发送参数,如何读取结果并将它们存储在PHP中的数组中.请.我感谢任何帮助:)
当前状态:
问题: - 需要知道从请求中分派/使用的路由名称.
例如:1. http://www.mycompany.com/en/trainers/ 预期的返回值:WWW的语言教练
我有一个foreach循环,在其中分叉.在进程分叉之后,它访问数据库.我收到一个错误:
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)
问题是,我在分叉后连接到数据库.
我的问题:为什么会这样?
如果发生这种情况,我实际上是在分叉之前访问数据库吗?孩子会继承数据库连接吗?
(注意:我可以发布代码,但它相当大,因为它都在类中,这可能是导致我在访问数据库时的混乱.另一件事你应该知道我正在使用ZF.)
我希望能够使用数组表示法向我的表单添加一个隐藏的表单字段.我可以用这样的HTML做到这一点:
<input type="hidden" name="contacts[]" value="123" />
<input type="hidden" name="contacts[]" value="456" />
Run Code Online (Sandbox Code Playgroud)
提交表单时,$_POST数组将包含分组为数组的隐藏元素值:
array(
'contacts' => array(
0 => '123'
1 => '456'
)
)
Run Code Online (Sandbox Code Playgroud)
我可以在表单中添加一个隐藏元素,并指定数组表示法,如下所示:
$form->addElement('hidden', 'contacts', array('isArray' => true));
Run Code Online (Sandbox Code Playgroud)
现在,如果我用数组填充该元素,我希望它应该将值存储为数组,并将元素呈现为上面显示的HTML:
$form->populate($_POST);
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.我正在使用的Zend Framework版本中可能存在错误.我这样做了吗?我该怎么办?我怎样才能达到上述结果?如果必须的话,我愿意创建自定义表单元素.请告诉我我需要做什么.
我正在Zend_Pagintor上课Zend_Db_Table_Abstract.
Zend_Pagintor有一个count()方法,但它总是返回1!
我如何获得行数?
class My_View_Helper_Gender extends Zend_View_Helper_Abstract
{
public function Gender()
{
//
}
}
"The class method (Gender()) must be named identically to the concliding part
of your class name(Gender).Likewise,the helper's file name must be named
identically to the method,and include the .php extension(Gender.php)"
(Easyphp websites J.Gilmore)
Run Code Online (Sandbox Code Playgroud)
我的问题是: 一个视图Helper可以包含多个方法吗?我可以从我的帮助器中调用其他视图助手吗?
谢谢
卢卡
因此,我可以使用PHP客户端库将视频上传到YouTube(直接上传)并将其设置为私有,但是是否可以将其设置为不公开?
我遇到了一个有趣的困境.在DataMapper类中,我正在生成一个类名,用于从数据库返回的行.
问题是,我的所有类都是自动加载的,并且可以来自许多地方(库,应用程序/模型等),我想检查生成的类名是否确实存在.现在,有人会认为:
try
{
$test = new $className();
}
catch(Exception $ex)
{
// Class could not be loaded
}
Run Code Online (Sandbox Code Playgroud)
但当然,php错误(而不是抛出异常)说这个类无法找到...不是很有帮助.如果没有在Zend_Loader中重写自动加载器来搜索所有目录以查看是否可以加载类,那么还有什么可以实现这个目的吗?
对于任何想知道为什么我需要这样做而不只是让Class Not Found错误出现的人,如果找不到类,我想在预先确定的位置生成一个类,让我的生活变得轻松,因为这个项目顺其自然.
提前致谢!特里
PS如果你们需要更多信息,请告诉我.
在Zend Framework 2中,将初始模块横幅添加到控制台应用程序非常简单.
我们所需要的只是实现getConsoleBanner和getConsoleUsage方法并实现Zend\ModuleManager\Feature\ConsoleUsageProviderInterface或ConsoleBannerProviderInterface接口.
这足以public/index.php通过CLI启动时在控制台中转储这些消息.
在Zend Framework 3中,它不一样.
执行相同的设置不会提供相同的结果.实际上在控制台中我们看到骨架应用程序的默认html页面与我们通过浏览器访问它的方式相同.
我们安装自定义模块之前,该网页被看到:这里是相关的文档zend-mvc-console模块
https://zendframework.github.io/zend-mvc-console/intro/
即使按照建议安装模块('Zend\Mvc\Console'在模块定义中添加),也不会显示控制台横幅.我已经在方法中使用var dumping进行了测试,并且我能够查看数据,因此框架执行这些方法但在控制台中没有显示结果.
我已经测试了控制台路由和控制器.找到路径,执行控制器操作但是cli中没有显示任何内容.
我已经挖掘了框架的代码,似乎Zend\Mvc\Console\ResponseSender\ConsoleResponseSender该类永远不会被执行.
我是否必须注册一些view_manager策略才能在CLI中显示某些内容?
以下是zf3骨架应用程序的源代码:https://gist.github.com/kachar/06f0c9096bcc1cc0b00f4612aed1b68b
运行应用程序:
$ php -v
PHP 7.0.6 (cli) (built: Apr 27 2016 14:00:40) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
$ php public/index.php
Application\Module::getConsoleBanner
Application\Module::getConsoleUsage
$ php public/index.php user
Application\Controller\IndexController::indexAction
Run Code Online (Sandbox Code Playgroud) zend-framework ×10
php ×7
autoload ×1
fork ×1
mysql ×1
oop ×1
open-source ×1
routes ×1
view-helpers ×1
xml ×1
youtube ×1
zend-form ×1
zend-router ×1
zf3 ×1