Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中从文件读取阵列的最佳实践_Php_Laravel - Fatal编程技术网

Php 在Laravel中从文件读取阵列的最佳实践

Php 在Laravel中从文件读取阵列的最佳实践,php,laravel,Php,Laravel,我的问题可能很愚蠢。但我需要澄清我的概念 在Laravel中有几种读取数组的方法。像config()变量、.env函数、trans()函数、文件读起来像.csv、.txt、.json等 可能它们都有不同的目的。 但我需要知道从控制器读取阵列数据的最佳实践是什么。给出了一个例子。谢谢 示例数组: [ "mohammad" => [ "physics" => 35, "maths" => 30,

我的问题可能很愚蠢。但我需要澄清我的概念

在Laravel中有几种读取数组的方法。像
config()
变量、
.env
函数、
trans()
函数、文件读起来像
.csv
.txt
.json

可能它们都有不同的目的。 但我需要知道从控制器读取阵列数据的最佳实践是什么。给出了一个例子。谢谢

示例数组:

       [
        "mohammad" => [
           "physics" => 35,
           "maths" => 30,   
           "chemistry" => 39
        ],

        "qadir" => [
           "physics" => 30,
           "maths" => 32,
           "chemistry" => 29
        ],

        "zara" => [
           "physics" => 31,
           "maths" => 22,
           "chemistry" => 39
        ]
     ]
serialize()
unserialize()
函数可以创建/加载任何php值的文本表示形式

但是,只有当数据在运行时变化不大时,我才会使用文件来存储数据。例如,用于缓存或配置目的。否则,当多个会话试图同时读/写文件时,您可能会遇到冲突,并产生奇怪的错误

对OP部分评论的回应:

Laravel使用解释的配置文件,即在框架启动后由PHP解析。使用这样的文件可以使用一些简洁的语言特性,比如类注入,允许对配置文件进行版本设置,并使开发人员的生活更加轻松,因为配置相关的框架内容存储在代码中

对于运行时、会话特定的内容,请使用数据库。有一个
$\u会话[]
变量用于存储临时数据。根据您的配置,这些值可以存储在内存或文件中,由PHP处理。

serialize()
unserialize()
函数可以创建/加载任何PHP值的文本表示形式

但是,只有当数据在运行时变化不大时,我才会使用文件来存储数据。例如,用于缓存或配置目的。否则,当多个会话试图同时读/写文件时,您可能会遇到冲突,并产生奇怪的错误

对OP部分评论的回应:

Laravel使用解释的配置文件,即在框架启动后由PHP解析。使用这样的文件可以使用一些简洁的语言特性,比如类注入,允许对配置文件进行版本设置,并使开发人员的生活更加轻松,因为配置相关的框架内容存储在代码中


对于运行时、会话特定的内容,请使用数据库。有一个
$\u会话[]
变量用于存储临时数据。根据您的配置,这些值可以存储在内存或文件中,PHP会处理它们。

只是对上面的答案进行了一点小小的更正:作者询问了读取数据的问题,因此他们可能需要
取消序列化(file\u get\u contents('data.file') 只是对上述答案的一个小更正:作者询问了读取数据的问题,因此他们可能需要
取消序列化(file_get_contents('data.file')) Laravel在引擎盖下使用
var\u export()
以这种方式缓存配置:

$config = [
    'myvalue' => 123, 
    'mysub' => [
         'mysubvalue' => true
    ]
];
$code = '<?php return '.var_export($config, true).';'.PHP_EOL;
在代码中,您必须简单地包含该文件,以获得您的结构

$myconfig = require config_path('myconf.php');
dd($myconfig);
或者(如果是配置文件)调用

要以Laravel样式检索值,可以使用Illumb\Config\Repository类 例如


希望这将澄清和帮助

Laravel在引擎盖下使用
var\u export()
以这种方式缓存配置:

$config = [
    'myvalue' => 123, 
    'mysub' => [
         'mysubvalue' => true
    ]
];
$code = '<?php return '.var_export($config, true).';'.PHP_EOL;
在代码中,您必须简单地包含该文件,以获得您的结构

$myconfig = require config_path('myconf.php');
dd($myconfig);
或者(如果是配置文件)调用

要以Laravel样式检索值,可以使用Illumb\Config\Repository类 例如


我不知道这是否是最佳实践,但我可以肯定,它不仅在Laravel中有效,而且在任何其他PHP项目中都有效

也就是说,要从文件中读取数组,您所要做的就是将返回的数组分配给变量

数组必须从包含的文件中返回,这很重要

例子: path/to/my/array_file.php

<?php

return [

    'resource' => [

        'delete'  => 'Are you sure you want to delete this resource?',
        'updated' => 'Data for this resource has been successfully updated',
        'created' => 'Data for this resource has been successfully created',
        'deleted' => 'Data for this resource has been successfully deleted',
    ],
];
现在$messages只是另一个php数组

如果在Laravel中使用var_dump($messages)或dd($messages),则会得到如下结果:

$messages = include('path/to/my/array_file.php');
array:2 [▼
  "resource" => array:4 [▼
    "delete" => "Are you sure you want to delete this resource?"
    "updated" => "Data for this resource has been successfully updated"
    "created" => "Data for this resource has been successfully created"
    "deleted" => "Data for this resource has been successfully deleted"
  ]
] 

我不知道这是否是最佳实践,但我可以向您保证,它不仅适用于Laravel,而且适用于任何其他PHP项目

也就是说,要从文件中读取数组,您所要做的就是将返回的数组分配给变量

数组必须从包含的文件中返回,这很重要

例子: path/to/my/array_file.php

<?php

return [

    'resource' => [

        'delete'  => 'Are you sure you want to delete this resource?',
        'updated' => 'Data for this resource has been successfully updated',
        'created' => 'Data for this resource has been successfully created',
        'deleted' => 'Data for this resource has been successfully deleted',
    ],
];
现在$messages只是另一个php数组

如果在Laravel中使用var_dump($messages)或dd($messages),则会得到如下结果:

$messages = include('path/to/my/array_file.php');
array:2 [▼
  "resource" => array:4 [▼
    "delete" => "Are you sure you want to delete this resource?"
    "updated" => "Data for this resource has been successfully updated"
    "created" => "Data for this resource has been successfully created"
    "deleted" => "Data for this resource has been successfully deleted"
  ]
] 

我想从Laravel项目中的文件导入一个简单数组。我将文件保存在resources/appData中,为了加载阵列,我的结果如下:

$categories = include(resource_path('appData/categories.php'));
这将从“resources/appData/categories.php”中的文件加载数组,并将其保存到$categories变量中

该文件返回的数组类似于Laravel中的配置文件

 <?php
    return [
 
    ];

我想从Laravel项目中的文件导入一个简单数组。我将文件保存在resources/appData中,为了加载阵列,我的结果如下:

$categories = include(resource_path('appData/categories.php'));
这将从“resources/appData/categories.php”中的文件加载数组,并将其保存到$categories变量中

该文件返回的数组类似于Laravel中的配置文件

 <?php
    return [
 
    ];
你的意思是什么<