我想在运行后立即运行脚本
`docker-compose up -d`
Run Code Online (Sandbox Code Playgroud)
这是我的片段docker-compose.yml.其他设置是mysql服务器,redis ...等....但它们不会导致任何问题
web:
image: nginx
container_name: web-project
volumes:
- ./code:/srv
working_dir: /srv/myweb
extra_hosts:
- "myweb.local:127.0.0.1"
ports:
- 8081:80
# tty: true
command: sh /srv/scripts/post-run-web.sh
Run Code Online (Sandbox Code Playgroud)
所以每当我跑步 docker-compose up -d或者 docker-compose up一切都停止.(容器不能继续运行).虽然我的shell脚本很简单(运行echos ...或phpunit).这是我的剧本.
#!/bin/bash
echo running post install scripts for web..;
cd /srv/myweb
npm install
composer self-update
composer update
Run Code Online (Sandbox Code Playgroud)
这就是我得到的错误.就像服务器(nginx)还没有运行一样.此外,如果我使用exec bash连接到服务器,并检查进程.我没有看到nginx正在运行(还).
web_1 | You are already using composer version 7a9eb02190d334513e99a479510f87eed18cf958.
web_1 | Loading composer repositories with package information
web_1 | Updating dependencies (including require-dev) …Run Code Online (Sandbox Code Playgroud) 当我似乎在我的查询中使用参数时,我收到一个错误
参数号无效:绑定变量数与令牌数不匹配
这是我的代码
public function GetGeneralRatingWithUserRights($user, $thread_array)
{
$parameters = array(
'thread' => $thread_array['thread'],
'type' => '%'.$thread_array['type'].'%'
);
$dql = 'SELECT p.type,AVG(p.value)
FROM TrackerMembersBundle:Rating p
GROUP BY p.thread,p.type';
$query = $this->em->createQuery($dql)
->setParameters($parameters);
$ratings = $query->execute();
return $ratings;
}
Run Code Online (Sandbox Code Playgroud)
如何正确配置参数数组?
我有一个使用Tree架构构建的Categories表,使用Doctrine Tree Extension,它看起来像这样
id parent_id title lft lvl rgt root
864 (NULL) Movies 1 0 18 864
865 864 Packs 2 1 3 864
866 864 Dubbed 4 1 5 864
Run Code Online (Sandbox Code Playgroud)
在视觉上像这样:
Movies
|
|
|->Packs
|->Dubbed
Run Code Online (Sandbox Code Playgroud)
现在我想生成用于添加评论的表单,并将类别作为每个电影的下拉列表加载,所以我在我的电影评论表单类型中
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name');
$builder->add('file');
$builder->add('cover');
$builder->add('category','entity', array('class'=>'Tracker\MembersBundle\Entity\Category', 'property'=>'title', ));
}
Run Code Online (Sandbox Code Playgroud)
这会生成一个正常的下拉菜单:

我如何配置我的菜单设置,所以它会像这样生成一个Tree-Like-dropdown select?

我正在尝试运行我的帆单元测试(使用摩卡和伊斯坦布尔)
跑步的时候
grunt test
Run Code Online (Sandbox Code Playgroud)
我得到了错误
1) "before all" hook
2) "after all" hook
0 passing (5s)
2 failing
1) "before all" hook:
Error: timeout of 2000ms exceeded
at null.<anonymous> (/vagrant/node_modules/mocha/lib/runnable.js:157:19)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
2) "after all" hook:
ReferenceError: sails is not defined
Run Code Online (Sandbox Code Playgroud)
设置似乎没有找到我的Sails ...但正在做
which sails
Run Code Online (Sandbox Code Playgroud)
我明白了
/usr/local/node/node-default/bin/sails
Run Code Online (Sandbox Code Playgroud)
并且运行sails lift正常
这是我项目中的mocha测试文件
//boostrap.test.js
var Sails = require('sails');
before(function(done) {
Sails.lift({
// configuration for testing purposes
}, function(err, sails) {
if (err) return done(err);
// here you can …Run Code Online (Sandbox Code Playgroud) 我想转移到Symfony2,因为它的现代性和良好的编程给我留下了深刻的印象.
现在我从我的旧系统中获取一个用户表,有10,000个用户,我不想通过让他们设置一个新密码来激怒他们....所以我希望他们能够使用他们的旧密码登录
下面是我的用户表如何看起来像有关登录/注册的3个主要字段的伪代码:
id, int(10) unsigned NOT NULL
username varchar(40) NOT NULL
passhash varchar(32) NOT NULL
secret varchar(20) NOT NULL
Run Code Online (Sandbox Code Playgroud)
在注册时,数据以这种方式生成:
$secret = mksecret ();
$passhash = md5 ($secret . $password_formfield . $secret);
Run Code Online (Sandbox Code Playgroud)
在登录时,以下列方式检查数据:
if ($row['passhash'] != md5 ($row['secret'] . $password_formfield . $row['secret']))
{
//show login error
}
Run Code Online (Sandbox Code Playgroud)
那么如何在FOSUserBundle中最好地处理它,而不必编辑太多文件?
我设法将xdebug与docker和phpstorm结合使用.对于http调用... IE
http://192.168.99.100:8081/?XDEBUG_SESSION_START=PHPSTORM
但是当我尝试运行我的phpunit测试时,它没有与phpstorm连接
我在phpstorm中执行了正确的目录映射,并在docker-instance上运行了以下命令 export XDEBUG_CONFIG="idekey=PHPSTORM"
我也试过我的docker:导出PHP_IDE_CONFIG ='serverName = web.docker'并在phpstorm web.docker上命名服务器配置.仍然在http而不是CLI上工作
那么我可以将phpstorm和xdebug一起用于命令行吗?
这是我的档案: /etc/php5/cli/conf.d/20-xdebug.ini
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
xdebug.remote_host=172.17.42.1
dxdebug.remote_autostart=1
Run Code Online (Sandbox Code Playgroud)
当我打开日志记录,并使用xdebug_remote_host IP地址时,我得到了
W: Remote address not found, connecting to configured address/port: localhost:9000. :-|
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:20:39
Log opened at 2015-10-13 12:22:58
I: Checking remote connect back address.
W: Remote address not found, connecting to configured address/port: 172.17.42.1:9000. :-|
E: Could not connect to client. :-(
Log closed at …Run Code Online (Sandbox Code Playgroud) 我使用php guzzle客户端抓取网站,然后使用symfony 2.1抓取工具处理它
我正在尝试访问表单....例如此测试表单 http://de.selfhtml.org/javascript/objekte/anzeige/forms_method.htm
$url = 'http://de.selfhtml.org/javascript/objekte/anzeige/forms_method.htm';
$client = new Client($url);
$request = $client->get();
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);
$response = $request->send();
$body = $response->getBody(true);
$crawler = new Crawler($body);
$filter = $crawler->selectButton('submit')->form();
var_dump($filter);die();
Run Code Online (Sandbox Code Playgroud)
但我得到了例外:
当前节点列表为空.
关于如何访问表单,我有点迷茫
我有一个事件监听器,方法看起来像这样
public function onKernelResponse(FilterResponseEvent $event,EntityManager $entityManager)
{
$controller = $event->getController();
if (!is_array($controller)) {
return;
}
if ($controller[0] instanceof UserController) {
//@TODO limit this for Controller action editUser() only
$response = $event->getResponse()->getContent();
$responseDecoded = json_decode($response);
if ($responseDecoded instanceof UserProperties) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的services.yml看起来像这样
update_user_controller_listener_marking_tasks:
class: Company\UserResultBundle\EventListener\UserEditListener
arguments: [@doctrine.orm.entity_manager]
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
Run Code Online (Sandbox Code Playgroud)
问题是监听器为在该用户控制器中执行的每个动作运行,这是我不想要的.
我的问题是我如何限制只在特定行动的响应中运行.我们说吧editUser()?
我无法找到明确显示文档的内容
目前我有一个表单,从我的类别实体生成一个下拉选择:
$builder
->add('category', 'entity',
array('class' => 'TrackerMembersBundle:Category',
'property' => 'title',));
Run Code Online (Sandbox Code Playgroud)
现在我想生成复选框,在那里我可以选择多个选项...我搜索了symfony2文档,但找不到一个简单的方法直接从我的Entity.Any想法吗?
鉴于我有一个数组,说:
$myArray=['12','AB','3C']
Run Code Online (Sandbox Code Playgroud)
我想返回值2(这是每个数组元素的长度.)
但万一我有类似的东西
$myArray=['12','AB2','3C']
Run Code Online (Sandbox Code Playgroud)
我想在数组的第二个元素之后立即停止计算/循环'AB2',让我的函数返回null.
在性能和速度有效的问题上达成此目标的最有效方法是什么?因为这样的阵列可以变长.
我有array1以下内容
array(
'banana',
'apple',
'orange');
Run Code Online (Sandbox Code Playgroud)
我有一个不同的关联数组2与项目的内容和价格
array('banana' => '1.45',
'apple' => '2.99',
'carrot' => '1.99',
'orange' => '0.99',
'papaya' => '2.99');
Run Code Online (Sandbox Code Playgroud)
我如何生成一个最终数组,将两者与它们的公共部分结合起来,得到最终结果:
array('banana' => '1.45',
'apple' => '2.99',
'orange' => '0.99');
Run Code Online (Sandbox Code Playgroud) 我试图模仿它的find方法EntityRepository,以便测试不会在数据库中查找数据,但它似乎不起作用.这是setUp测试类的方法
public function setUp()
{
parent::setUp();
$this->client = static::createClient();
$this->peopleManager = $this->getMockBuilder(PeopleManager::class)
->setMethods(['createPerson','peopleUpdate', 'peopleDelete', 'peopleRead'])
->disableOriginalConstructor()
->getMock();
$this->repository = $this->getMockBuilder(EntityRepository::class)
->disableOriginalConstructor()
->getMock();
$this->em = $this->getMockBuilder(EntityManager::class)
->disableOriginalConstructor()
->getMock();
}
Run Code Online (Sandbox Code Playgroud)
这是我们调用find函数的方法
public function updatePersonAction($id, Request $request)
{
$repository = $this->getDoctrine()->getRepository('GeneralBundle:People');
$person= $repository->find($id);
if($person)
{
$data = $request->request->get('array');
$createdPeople = array();
$UpdatedPerson = "";
foreach($data as $content)
{
$prueba = $this->get('people.manager');
$UpdatedPerson = $prueba->peopleUpdate(
$person,
$content['name'],
$content['surname'],
$content['secondSurname'],
$content['nationality'],
$content['birthday'],
$content['identityCard'],
$content['identityCardType']
);
array_push($createdPeople, $person);
}
$serializedEntity …Run Code Online (Sandbox Code Playgroud)