小编Sab*_*ett的帖子

MVC(Laravel)在哪里添加逻辑

假设每当我进行CRUD操作或以特定方式修改关系时,我也想做其他事情.例如,每当有人发布帖子时,我也想将某些内容保存到表中进行分析.也许不是最好的例子,但总的来说有很多这种"分组"的功能.

通常我会将这种逻辑放入控制器中.在你想要在很多地方重现这个功能之前,这一切都很好.当你开始进入局部,创建一个API并生成虚拟内容时,就会出现干涸问题.

我看到管理它的方法是事件,存储库,库和添加到模型.以下是我对每个人的理解:

服务:这是大多数人可能会放置此代码的地方.我对服务的主要问题是,有时很难在其中找到特定功能,我觉得他们会忘记人们何时专注于使用Eloquent.我怎么知道我需要publishPost()在库中调用方法$post->is_published = 1

我看到这个工作得很好的唯一条件是,如果你只使用服务(理想情况下,Eloquent不能以某种方式从控制器一起无法访问).

最终,如果您的请求通常遵循您的模型结构,这似乎只会创建一堆额外的不必要的文件.

存储库:从我的理解,这基本上就像一个服务,但有一个接口,所以你可以在ORM之间切换,我不需要.

事件:从某种意义上说,我认为这是最优雅的系统,因为你知道你的模型事件总是会在Eloquent方法中被调用,所以你可以像往常一样编写你的控制器.我可以看到这些变得混乱,如果有人有大型项目的例子使用事件进行关键耦合,我希望看到它.

模型:传统上我会有类执行CRUD并处理关键耦合的类.这实际上让事情变得简单,因为你知道CRUD的所有功能+无论如何都要做到这一点.

很简单,但在MVC架构中,这通常不是我所看到的.从某种意义上说,虽然我更喜欢这种服务,因为它更容易找到,而且需要跟踪的文件较少.但它可能会有点混乱.我想听听这种方法的失败,以及为什么大多数人似乎都没有这样做.

每种方法有哪些优点/缺点?我错过了什么吗?

php design-patterns laravel laravel-4

115
推荐指数
4
解决办法
4万
查看次数

PHP深度扩展阵列

如何对多维关联数组进行深度扩展(用于解码的JSON对象).我需要PHP的等价于jQuery的$.extend(true, array1, array2)数组而不是JSON和PHP.

这是我需要的一个例子(array_merge_recursive似乎没有做同样的事情)

$array1 = ('1'=> ('a'=>'array1a', 'b'=>'array1b'));
$array2 = ('1'=> ('a'=>'array2a', 'c'=>'array2b'));

$array3 = array_extend($array1, $array2);

//$array3 = ('1'=> ('a'=>'array2a', 'b'=>'array1b', 'c'=>'array2b'))
Run Code Online (Sandbox Code Playgroud)

注意如果array1具有相同的值,则array2将如何覆盖array1(如类的扩展如何工作)

php jquery json array-merge

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

子域名上的Facebook应用程序:站点URL与应用程序域

根据Facebook和其他堆栈溢出问题,App Domain字段中支持子域,但是在"站点URL"字段(在"使用Facebook登录的网站"下),它们不是.我正在创建一个应用程序,用于许多不同的子域(实际上链接的子域,如http://clientname.projectname.mydomain.com),允许用户通过Facebook(通过js)登录,然后检索他们的数据(通过js和PHP).

如何设置您的Facebook应用程序,以便它支持多个子域?

subdomain facebook facebook-graph-api

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

Composer在4.2上依赖于"通过SAT解决依赖关系"

我试过的事情:

  • 删除除Laravel(版本4.2.*)之外的所有内容 - 此操作已完成但仍会挂起约5分钟
  • 更新作曲家
  • 删除/供应商
  • 做干净的Laravel 4.2安装(挂起约3分钟)
  • 做干净的Laravel 5安装(根本不挂)
  • 完全关闭xdebug(似乎没有什么区别)

有了我所有的包,我看到作曲家完成了,但只有当我让它一夜之间运行时.我根本无法部署锻造,因为它超时了!这只是在两周前开始发生的.

laravel composer-php forge laravel-4

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

OAuth(Instagram)没有刷新

我有一个单页的javascript应用程序,我想知道我是否可以在Instagram上验证用户而无需刷新页面.我想尝试使用javascript执行类似于Facebook连接的操作,其中在弹出窗口中打开Facebook对话框,然后调用回调脚本.

这就是我想它会做的......

  1. 点击后,打开一个对话框(弹出窗口)窗口,用户登录Instagram,并授予应用程序权限.
  2. 在弹出窗口中,用户被重定向回我的网站,我的网站在那里卷曲到Instagram以获取access_token,然后在用户的会话中或作为cookie设置访问令牌.
  3. 不知何故......主应用程序需要识别何时设置了访问令牌.这是我真的不确定的一点.我会使用计时器继续拨打回服务器进行检查吗?有没有人有更好的想法来检测它?将它设置在cookie中会更好吗?

在我开始编码之前,我想我先问这里,如果这样做/不适用,或者其他建议,任何人都有任何想法!也许这已经存在,我错过了一些东西?

提前致谢 :-)

javascript cookies oauth-2.0 instagram

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

使div和子div至少延伸到浏览器窗口的整个高度

我需要有沿着我的主体div的左侧和右侧延伸的图像(实际上是在div下面的一种阴影效果).

如果不是因为我希望这个div可以扩展,而且我需要它在IE7和IE8中工作,我希望它能扩展到至少页面的底部.

我尝试使用polyfill来获得CSS3魔法,但他们也没有工作(我试过PIE和一些没有运气的过滤器).

我觉得我已经尝试了一切......这让我来到这里!这是我通过CSS/html获得的,我觉得我应该能够让它工作,但到目前为止还没有雪茄:

<div class="left-image">
<div class="right-image">
main body text
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用以下css:

html,body{
    height: 100%
}
.left-image{
    background: transparent url('image/url.png') repeat-y top left;
    min-height: 100%; /*this alone works for making outer div extend browser & content height*/
    min-width: 960px;
    max-width: 1280px;
    margin: 0 auto;
}
.right-image{
    background:  transparent url('image/url.png') repeat-y top left;
    height: 100%; /*this only makes the div the height of its content*/
}
Run Code Online (Sandbox Code Playgroud)

这导致.left-image div填充浏览器窗口的高度或内容的高度(以较大者为准),但.right-image div仅适合内容的高度(因此,如果内容小于浏览器窗口它不会填充它).

有什么方法吗?只是使用jQuery?

html css jquery fluid-layout

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

如何使用javascript/jquery检查鼠标是否退出浏览器窗口?

我需要一种方法来检查并查看鼠标是否在浏览器窗口之外.问题是当鼠标RAPIDLY移动到浏览器窗口之外时(我的元素靠近边缘),不会触发mouseout事件(或mousemove).我认为解决我的问题的最好方法是检查一个计时器,如果鼠标在窗口内,或者我没有找到一种方法,因为我需要一个事件来触发以获得鼠标坐标.

我是一个javascript/jquery新手,但似乎应该有办法做到这一点但我到目前为止肯定无法找到它.也许我可以强制鼠标事件触发并查看是否有任何xy值?知道我怎么能这样做吗?

提前致谢!

javascript jquery events

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