小编Exl*_*ord的帖子

flex孩子长大了父母

如何在不设置静态高度值且没有绝对位置的情况下强制将绿色框包含在红色框中?

我想缩小内容以适应父级.

允许内容(在这种情况下为视频)缩小并允许滚动条.

.my-box {
  height: 300px;
  width: 600px;
  background: red;
  padding: 5px;
}
.content-box {
  background: blue;
}
.col {
  display: flex;
  flex-direction: column;
  justify-content: space-between
}
.box-shrink {
  flex: 0 1 auto;
  background: green;
  padding: 5px;
  margin: 5px;
}
.box-grow {
  flex: 1 0 auto;
  background: green;
  padding: 5px;
  margin: 5px;
}
video {
  max-height: 100%;
  max-width: 100%;
  margin: auto;
  display: block;
}
Run Code Online (Sandbox Code Playgroud)
<div class="my-box col">
  <div class="box-shrink">
    small sized static content
  </div>
  <div class="content-box box-grow">
    <video controls> …
Run Code Online (Sandbox Code Playgroud)

html css css3 flexbox

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

ZF2不推荐使用:ServiceManagerAwareInterface

今天我更新了我的项目,我得到了这个警告:

不推荐使用:ServiceManagerAwareInterface已弃用,将在3.0版中与ServiceManagerAwareInitializer一起删除.请更新您的类X以删除实现,并开始通过工厂注入您的依赖项

我有一些Base实现ServiceManagerAwareInterface扩展这些基类的多个类的主类.

那么为每个类创建额外的工厂类是一个好习惯吗?或者最好为每个模块使用1个AbstractFactory并在那里启动类?

使用AbstractFactory影响性能的剂量?

什么是在许多类中注入单个(或2个)共享依赖项的最佳实践?

更新:即使我接受了@AlexP的答案,但我对提供依赖项抛出构造函数有一些担忧.想象一下这个场景:我有一个带有几个动作的控制器,以免ActionA需要ServiceZ和ActionB需要ServiceY和ServiceX,而ServiceX也依赖于ServiceM和ServiceN.现在,每次我调用ActionA时我的控制器都启动了所有这些服务,但ActionA只需要1个服务,我的控制器加载了5个服务....这是一个好习惯吗?这是正确的做法吗?这会不会有糟糕的表现,因为在每次请求服务时都会发起我们在该请求期间根本不会使用的服务?

现在我允许每个服务/控制器利用其自身的需求和负载护理服务时,它需要它们.

这样我就不必启动我不会使用的多个服务,而且我不需要知道服务依赖项来使用它们.我知道这不是最佳实践,但代码很干净,我宁愿牺牲"最佳实践"来获得更好的表现.

感谢任何人对此的意见.

php dependency-injection zend-framework2 zend-framework3

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

Node.js检查给定的字符串是否是有效的文件系统路径,而无需实际检查文件系统

我如何在nodejs中检查给定的字符串是否是有效的文件系统路径,而无需实际检查文件系统。

我正在使用电报bot nodejs api,并且在发送文件时会检查文件是否存在。但是第二次我使用的telegram file id是从预览上传中获取的,而不是发送文件的实际文件路径,因此在这种情况下,我想检查字符串是否是实际文件路径而不是文件id(exp :AgADBAADuqcxG-ysuwhqkRaOdVnJI0CZXhkABL1NBSyVlK3gduoAAgI)前检查,如果文件中存在这样来提高性能,并避免不必要的文件系统访问。

filesystems file path file-exists node.js

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

如何使用javascript退出浏览器的F11全屏

有没有办法退出通过点击创建的全屏F11

FullScreen: {
      _callback: null,
      enabled  : function () {
        return document.fullscreenEnabled ||
          document.webkitFullscreenEnabled ||
          document.mozFullScreenEnabled ||
          document.msFullscreenEnabled;
      },

      request: function (i) {
        if (i.requestFullscreen) {
          i.requestFullscreen();
        } else if (i.webkitRequestFullscreen) {
          i.webkitRequestFullscreen();
        } else if (i.mozRequestFullScreen) {
          i.mozRequestFullScreen();
        } else if (i.msRequestFullscreen) {
          i.msRequestFullscreen();
        }
      },

      element: function () {
        return document.fullscreenElement ||
          document.webkitFullscreenElement ||
          document.mozFullScreenElement ||
          document.msFullscreenElement;
      },

      exit: function () {
        if (document.exitFullscreen) {
          document.exitFullscreen();
        } else if (document.webkitExitFullscreen) {
          document.webkitExitFullscreen();
        } else if (document.mozCancelFullScreen) …
Run Code Online (Sandbox Code Playgroud)

html javascript fullscreen

6
推荐指数
0
解决办法
2272
查看次数

ZF2用户记住我不工作

我正在尝试为我的ZF2 v2.2站点实现记忆功能.所以这就是我到目前为止所做的:我为会话管理器创建了一个服务,将会话写入db:

'session' => array(
    'remember_me_seconds' => 2419200,
    'use_cookies' => true,
    'cookie_httponly' => true,
),


        'session_manager' => function (ServiceManager $sm) {
            $adapter = $sm->get('db_adapter');
            $config = $sm->get('app_config');
            $sessionOptions = new Session\SaveHandler\DbTableGatewayOptions();
            $sessionTableGateway = new TableGateway('tbl_session', $adapter);
            $saveHandler = new Session\SaveHandler\DbTableGateway($sessionTableGateway, $sessionOptions);
            $sessionConfig = new Session\Config\SessionConfig();
            $sessionConfig->setCookieDomain(ACTIVE_SITE);
            $sessionConfig->setCookieSecure(true);
            $sessionConfig->setOptions($config['session']);
            $sessionManager = new Session\SessionManager($sessionConfig, NULL, $saveHandler);
            $sessionManager->start();
            return $sessionManager;
        },
Run Code Online (Sandbox Code Playgroud)

并将此会话管理器用于我的会话并AuthenticationService:

Session\Container::setDefaultManager($sm->get('session_manager'));

        'user_auth_service' => function (ServiceManager $sm) {
            $authService = new \Zend\Authentication\AuthenticationService();
            $session = new \Zend\Authentication\Storage\Session(null, null, $sm->get('session_manager'));
            $authService->setStorage($session);
            return …
Run Code Online (Sandbox Code Playgroud)

cookies session remember-me zend-framework2

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

Mysql选择前n行whilte count x <y

我有一个名为列的表,itemCount我想选择前n行而SUM(itemCount)小于y.

+----+-----------+
| id | itemCount |
+----+-----------+
|  1 |         5 |
|  2 |        10 |
|  3 |         1 |
|  4 |        20 |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)

让我们这样说y=15,在这种情况下,我想要前2行,SUM(itemCount)<=15 我需要这样的东西:

SELECT * FROM `tbl_mail_queue` LIMIT 0,(select count(id) from `tbl_mail_queue` m where SUM(m.`count`)<=15)
Run Code Online (Sandbox Code Playgroud)

这可能吗?

更新:

我正在创建一个电子邮件队列系统,我的系统发送的每封电子邮件都存储在此表中.每封电子邮件可以有多个收件人,我不想将它们分成每个电子邮件行的一个收件人(其中一个模块发送电子邮件是时事通讯,每封邮件可以有几十个甚至几百个收件人,我只将它们分成50个收件人堆栈)所以在我的电子邮件表中我有一个列告诉我电子邮件有多少收件人.

所以每行的计数列可以有1到50的值,现在我想每隔几分钟发送50封电子邮件,这里是我需要此查询选择前50个电子邮件的地方,可以包含在1个或更多(n)行中.

mysql select count while-loop

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

AngularJs ui-router重新加载模板

我有一个使用ui-router进行路由的angularjs项目.我正在使用$state.reload()重新加载当前状态并且它工作得很好,除了在我的开发系统中我希望$state.reload()还重新加载html模板以反映新的更改而无需重新加载整页.

有没有黑客或选择这样做?

更新:

Chris T的解决方案几乎可以工作,但我已经templateFactoryDecorator在模板URL中添加了缓存破坏程序.

function configureTemplateFactory($provide) {
    // Set a suffix outside the decorator function
    var cacheBuster = Date.now().toString();

    function templateFactoryDecorator($delegate) {
        var fromUrl       = angular.bind($delegate, $delegate.fromUrl);
        $delegate.fromUrl = function (url, params) {
            if (url !== null && angular.isDefined(url) && angular.isString(url)) {
                url += (url.indexOf("?") === -1 ? "?" : "&");
                url += "v=" + cacheBuster;
            }

            return fromUrl(url, params);
        };

        return $delegate;
    }

    $provide.decorator('$templateFactory', ['$delegate', templateFactoryDecorator]);
}
Run Code Online (Sandbox Code Playgroud)

所以

$templateCache.remove($state.current.templateUrl);
Run Code Online (Sandbox Code Playgroud)

没用,我不得不用

$templateCache.removeAll();
Run Code Online (Sandbox Code Playgroud)

它不理想,但对于开发环境来说还可以.

angularjs angular-ui-router

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

ZF2表单元素描述

在ZF1表单的元素有一个setDescription是被输出作为方法<p>description here</p>鉴于.... ZF2显得那么我的问题是我怎样才能添加说明,形成元素没有这个方法?

这是我的看法:

<div>
    <?
    $form = $this->form;
    $form->prepare();
    echo $this->form()->openTag($form);

    foreach ($form->getElements() as $el) {
        ?>
        <div class="form_element">
            <?=$this->formRow($el);?>
        </div>
        <?
    }
    echo $this->partial('system/form/buttons_form_part.phtml', array('form' => $form));
    echo $this->form()->closeTag();
    ?>
</div>
Run Code Online (Sandbox Code Playgroud)

zend-form zend-form-element zend-framework2

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