Symfony2 中模型辅助函数的放置位置

2024-03-14

我有以下功能:

function array_duplicates($array)
{
    $duplicates = array();
    $unique = array_unique($array);
    for ($i = 0; $i < count($array); $i++) {
        if (!array_key_exists($i, $unique)) {
            $duplicates[] = $array[$i];
        }   
    }   
    return $duplicates;
}

这个函数显然不适用于任何特定模型,并且它不是模板助手。放置此功能的合适位置在哪里? (请不要说“任何你想要的地方”。)


这可能是您要放入服务中的东西类型。创建一个像这样的类:

class ArrayUtils
{
    function array_duplicates($array)
    {
        ... 
        return $duplicates;
    }
}

然后将其定义为服务。如果您使用 YAML,则可以将如下内容放入 config.yml 文件中:

services:
    arrayUtils:
        class:        Full\Path\To\ArrayUtils

在此配置下,Symfony 将创建 ArrayUtils 的单个实例,并授予所有控制器访问它的权限。然后你可以这样调用它:

class SomeController
{
    public function someAction()
    {
        ...
        $duplicates = $this->get("arrayUtils")->array_duplicates($array);
        ...
    }
}

这都是 Symfony 依赖注入框架的一部分。这非常酷,我建议您在这里阅读:http://symfony.com/doc/2.0/book/service_container.html http://symfony.com/doc/2.0/book/service_container.html

替代方案

现在,对于这么小的代码块来说,这可能有点过大了。如果您只想在单个捆绑包中使用它,那么您可能只想将其放入基本控制器中,并让所有其他控制器扩展该基本控制器。

class BaseController
{
    function array_duplicates($array)
    {
        ...
    }
}

class SomeController extends BaseController
{
    function someAction()
    {
        $this->array_duplicates($array);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 中模型辅助函数的放置位置 的相关文章

  • PHP 中 while (true){ 是什么意思?

    我看过这段代码 但不知道这意味着什么 while true echo Hello world 我知道什么是 while 循环 但是 while true 是什么意思 会执行多少次 这不是无限循环吗 虽然是无限循环 但您可以使用以下命令退出它
  • 使用 PHP 将子项添加到 XML 文件

    添加子项时 抛出此错误 无法添加孩子 父级不是 XML 树的永久成员 我无法解决这个问题 这是我的代码 if visited FIRST xml new SimpleXMLElement
  • SQL查询:按字符长度排序?

    是否可以按字符总数对sql数据行进行排序 e g SELECT FROM database ORDER BY data length 我想你想用这个 http dev mysql com doc refman 5 0 en string f
  • laravel Blade 模板不渲染

    进入 Laravel 后 我尝试使用 Blade 模板 但它没有渲染 我的所有示例都来自 Laravel 文档 UPDATE 所以这是我的master blade php 文件位于资源 gt 视图 gt master blade php y
  • 作为数据流写入 div

    考虑写入 div 的 AJAX 调用 recent req post result php d data function returnData content html returnData PHP 脚本位于result php执行一些需
  • 回显 HTML 并内置 PHP

    请帮助我使用 echo 与 HTML 和 PHP 使用数组范围将其转换为动态
  • 在 PHP $_SESSION 中存储数据不安全吗?

    根据我的理解 PHP 进程的行为并不像应用程序服务器进程 因此 执行脚本后 PHP 进程不会保留任何用户特定数据 相反 它将它们存储在用户的 cookie 中 所以无论我们存储在什么地方 SESSSION进入cookie 这是真的 如果是
  • 如何正确转义反斜杠以匹配单引号和双引号 PHP 正则表达式模式中的文字反斜杠

    为了匹配字面上的反斜杠 很多人和PHP 手册 http www php net manual en regexp reference escape php说 总是三重转义吧 就像这样 Note 单引号和双引号 PHP 字符串具有反斜杠的特殊
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 自动解析 PHP,将 PHP 代码与 HTML 分离

    我正在开发一个大型 PHP 代码库 我想将 PHP 代码与 HTML 和 JavaScript 分开 我需要对 PHP 代码进行多次自动搜索和替换 对 HTML 进行不同的搜索和替换 对 JS 进行不同的自动搜索和替换 有没有一个好的解析器
  • 撇号 php 问题

    我正在做一项涉及喊话箱的学校作业 一个很棒的教程 它使用 jquery ajax mysql 和 php 现在我遇到了以下句子的一个小问题 result li strong row user strong img src alt row m
  • 如何在 PHP 中修剪定界文档(长字符串)中的每一行

    我正在创建一个 PHP 函数 可以修剪长字符串中的每一行 例如
  • PHP使用正则表达式查找字符串

    我已经阅读了多个有关正则表达式的教程 但它只是不会留在我的脑海中 我永远无法让我的模式发挥作用 希望有人能帮忙 我有一个 php 变量 content 我需要在其中找到如下所示的特定模式 图库 名称 文件夹 我想搜索 starting wi
  • 关闭旧的 php websocket

    我在用PHP Websockets https github com ghedipunk PHP Websockets创建一个简单的聊天服务器 当我第一次运行在我的服务器上创建 websocket 的 php 脚本时 一切正常 如果脚本由于
  • 如何测试“If-Modified-Since”HTTP 标头支持

    使用 PHP 如何准确测试远程网站supports If Modified Since HTTP 标头 据我所知 如果您获取的远程文件自标头请求中指定的日期以来已被修改 它应该返回 200 OK 状态 如果尚未修改 则应返回 304 Not
  • PHP Soap Server:使用字符串(xml 字符串)而不是 WSDL 文件(指向它的 url)实例化

    Soap Server的PHP页面 我见过 http www php net manual en soapserver soapserver php http www php net manual en soapserver soapser
  • Mysqli 准备好的语句从数组动态构建 INSERT 查询

    我正在尝试用 PHP 而不是 OOP 开发我的函数 以创建 CRUD 目标是对任何表使用相同的函数 但我已经陷入了第一个表中 不知道该怎么做 我现在拥有的 function to avoid injections function vali
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj
  • DOMDocument PHP 内存泄漏

    在 MAC 上的 MAMP 下运行 PHP 5 3 6 内存使用量每调用 x 次 3 到 8 次 就会增加 直到脚本因内存耗尽而终止 我该如何解决 libxml use internal errors true while true dom
  • 是否需要使用fetch_object或fetch_array?

    我最近发现我可以打印数据库中的结果而不使用mysqli fetch object功能 例如 假设我们有一个简单的 sql select 语句 可以使用如下所示的语句来执行 conn mysqli connect localhost root

随机推荐

  • Laravel 5.8 中 Pusher 连接失败

    我在 laravel 5 4 中使用 Pusher 没有任何问题 但现在我尝试使用 laravel 5 8 但出现以下错误 我已经尝试了我能想到的一切 甚至改变了encrypted to false万一 我三次检查了我的推送者凭据 Lara
  • uifont“Impact”不适用于 iOS

    我正在尝试使用 Impact ttf 它是 OSX 内置的 但在 xcode 上看不到自定义字体 所以我将它包含在我的项目中 如屏幕所示并使用 UIFont font1 UIFont fontWithName Impact ttf size
  • 在 iOS SDK 4.2 上构建越狱设备

    我有一个通过 Cydia 分发的应用程序 它没什么黑科技 只是一个连接到 Web API 的 GUI 我上次提交更新是在 SDK 4 0 之前 我使用了可用的说明here http thebigboss org hosting reposi
  • Javascript:检索对象属性名称

    我正在尝试编写一个需要知道传入对象的属性名称的函数 如下所示 var data key1 value1 key2 value2 etc i want the string value key1 如何从中检索字符串 key1 data 我知道
  • CSS 表格宽度 - 100% + 减去边距

    我偶然发现了一个我不完全确定如何解决的问题 我有一个包含多个 div 的页面 其中一个包含一个表格 但边距为 20 像素 我需要这个表格 对接 另一个 div 的右侧 这是我通过使用 20px 的边距来完成的 正如我所希望的那样 由于此 d
  • 如何使用 VIM 修复 perl 语法错误“缺少右大括号或方括号”?

    使用不匹配的数组大括号 或范围括号 编译 或执行 perl 程序会导致 缺少右大括号或方括号 语法错误 Perl 经常将源代码报告为最后一个代码行 at EOF 这可能与实际缺失的部分相去甚远 Perl 错误消息示例 Missing rig
  • Robot.mouseMove 在 Mac OS X 中根本不起作用

    我在 IntelliJ IDE 中使用该代码创建了 java 文件 import java awt AWTException import java awt MouseInfo import java awt Robot public cl
  • 如何在64位Android-L平台上使用32位本机库

    我有一个 Android 应用程序 我用 AOSP Kitkat 编译为 Android 系统应用程序 并且运行良好 我的应用程序依赖于使用 Android NDK 作为 32 位库编译的本机代码 我正在我的 Android 应用程序中复制
  • 如何在 Bash 中保持 MySQL 连接打开

    我有一个 bash 脚本 它多次调用 MySQL 有没有办法保持连接打开 而不是重新连接到 MySQL 理想情况下 如果脚本提前退出 连接就会关闭 我认为命名管道可以工作 但它们会保持打开状态 这是我希望找到的一个快速伪示例 openMyS
  • Android:使用 viewPager 限制片段加载

    我有 3 个由 FragmentPagerAdapter 管理的片段 设置为 viewPager 我想一个一个加载fragment 但是当执行FragmentActivity的onCreate方法时 执行的是前2个fragment onCr
  • Angular4模板引用变量赋值

    我遇到过这个例子 https material angular io components menu examples我们可以看到
  • 如何从 Cocoa 调用的管理员权限 bash 脚本获取输出?

    我正在使用下面的代码 以管理员权限启动 bash 命令 我需要能够在使用它之后将输出存储在数组中 我怎样才能得到输出 char command1 usr bin dscl char args1 read SharePoints Folder
  • Scrapy如何过滤爬取的url?

    我想知道Scrapy是如何过滤那些爬取的url的 它是否存储所有以类似方式爬行的网址crawled urls list 当它得到一个新的 url 时 它会查找列表以检查该 url 是否存在 这个过滤部分的代码在哪里爬行蜘蛛 path to
  • 将 Base64 字符串转换为位图或图像 Xamarin 或 Android [重复]

    这个问题在这里已经有答案了 我正在尝试将 Base64 字符串转换为图像并使用相同的图像设置 ImageView 我知道如何用 java 完成它 但我在 C 中遇到了麻烦 有人知道如何用 C 完成它吗 我尝试过的一些代码 public Im
  • fork 如何与逻辑运算符一起使用

    main if fork fork fork printf AA n else if fork printf BB n else printf CC n 我运行了以下代码并得到结果 AA AA CC BB CC BB 虽然我了解 fork
  • 如何在Azure中从BLOB读取文件内容并解析CSV文件?

    我已将 csv 文件存储在 blob 容器中 并尝试从 azure 中的逻辑应用程序读取内容 但我面临着获得联系并迭代相同的问题 请帮忙处理一下流量 您可以将逻辑应用程序与Azure Function结合起来来实现它 用于获取文件的 Blo
  • 索引多个文档并映射到唯一的 solr id

    我的用例是将 2 个文件索引 元数据文件和二进制 PDF 文件到唯一的 solr id 元数据文件具有 XML 文件形式的内容 某些架构字段映射到该 XML 文件中的元素 我的工作 从 PDF 文件中提取内容 使用 pdftotext 处理
  • Hackage 上“代数”包中的可交换幺半群

    的文档代数 2 1 1 2 doc html http hackage haskell org packages archive algebra 2 1 1 2 doc html Numeric Algebra Class html t M
  • Oracle 中满足条件时重置运行总和

    我的数据结构如下 Timestamp Hour Count 20190801 01 1 10 20190801 02 2 20 20190801 03 3 10 20190801 04 4 5 20190801 05 5 15 201908
  • Symfony2 中模型辅助函数的放置位置

    我有以下功能 function array duplicates array duplicates array unique array unique array for i 0 i lt count array i if array ke