小编Mar*_*leu的帖子

在PHP 5.6的puphpet上找不到类'SimpleXMLElement'

我已经被困在这个错误几个小时了,我似乎无法在互联网上找到任何有用的东西.错误是经典

Fatal error: Class 'SimpleXMLElement' not found in 
/var/www/NavPHP/nav/plugin/log/NavLog.php on line 29
Run Code Online (Sandbox Code Playgroud)

我没有使用Namespace,所以这不是问题.

这是一个在生产中运行良好的项目,曾经在我以前使用WampServer和PHP 5.6.2的计算机上工作.现在我有了一台新电脑,我有兴趣用puphpet建立一个虚拟环境,但是我收到了这个错误.

根据Docs的说法,默认情况下SimpleXMLElement类应该带有PHP.我没有php.ini在我的phpinfo()中找到任何重要信息,有以下内容:

SimpleXML   Sterling Hughes, Marcus Boerger, Rob Richards
Run Code Online (Sandbox Code Playgroud)

有小费吗?

谢谢

更新

只是添加这个

在此输入图像描述

php apache puphpet

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

我应该使用filter_var来验证电子邮件吗?

我有一个类在每次输入发送到数据库层之前验证它.请注意,我的问题不是逃避或任何事情.我的数据库层将处理SQL注入问题.我想要做的就是验证电子邮件是否有效,因为稍后该电子邮件可能被用作"发送到".例如,用户将通过发送到电子邮件的链接恢复对其帐户的访问.我读了很多filter_var,有很多人反对它,其他人也赞成.专注于'我只是想验证电子邮件而不是为数据库或html或XSS或其他任何'过滤它,是否存在使用问题filter_var

php validation

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

使用没有密码的JWT Laravel 5进行身份验证

我想学习Laravel和我的目标是能够建立一个RESTful API(没有用的观点或刀片,只JSON结果.后来,一个AngularJS的web应用程序和科尔多瓦混合移动应用将会使用这个API.

经过一番研究,我倾向于选择JWT-Auth库来获得完全无国籍的好处.我的问题是:我有两种主要类型的用户:客户版主.客户无需拥有密码.我需要能够使用提供的电子邮件生成用于访问的令牌.如果该电子邮件存在于数据库中且属于客户,则它将生成并返回该令牌.如果它存在且属于主持人,则它将返回false,因此接口可以请求密码.如果电子邮件不存在,则会引发无效的参数错误.

我在这里阅读了文档,它说可以使用自定义声明.但该文档并不能说明什么要求,什么这意味着数组定义声明传递.我想要了解如何实现我上面解释的内容.

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;


class AuthenticateController extends Controller
{

    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        try {
            // verify the credentials and create a token for the user
            if (! $token = JWTAuth::attempt($credentials)) {
                return response()->json(['error' => 'invalid_credentials'], 401);
            }
        } catch (JWTException $e) {
            // something went wrong
            return response()->json(['error' => 'could_not_create_token'], 500);
        }

        // if no …
Run Code Online (Sandbox Code Playgroud)

php authentication jwt angularjs

14
推荐指数
2
解决办法
7285
查看次数

考虑到供应商被忽略,如何克隆我自己的Laravel项目

我正在寻找有关处理Laravel项目的整个设置过程的帮助.目前这是我的演练列表:

  • 安装Virtual Box和Vagrant.
  • vagrant box add laravel/homestead
  • git clone https://github.com/laravel/homestead.git Homestead使用您最喜爱的Bash 运行您喜欢的文件夹(在我的情况下,我使用的是Git BASH,因为我在Windows 10上)
  • 使用SSH设置SSH密钥 ssh-keygen -t rsa -C "email@domain.blah"
  • 设置SSH连接器文件[¹].
  • 根据需要设置您的Homestead.yaml.
  • 运行init.sh/ init.bat.
  • SSH进入Vagrant.
  • composer global require "laravel/installer"
  • laravel new project
  • 回到主机,到项目文件夹,然后运行git init,git add .,git commit -m "clean project"
  • git remote add origin https://bitbucket.org/you/yourproject和推动项目git push -u origin --all

现在我有一个全新的Laravel项目与Git挂钩进行版本控制.我的问题是Laravel /vendor默认忽略.考虑到这个事实,我想在另一台计算机上克隆我的项目,因为我有两台计算机可以工作和/或一个同事想要克隆同一个项目,所以我们可以一起处理它.

克隆项目并使Laravel在另一台机器上工作的适当演练是什么?我是否必须添加/vendor到存储库并推送?我应该将宅基地箱添加到存储库中吗?如果是这样,怎么样?

提前致谢.

[¹]
Host homestead
HostName 127.0.0.1
User vagrant …
Run Code Online (Sandbox Code Playgroud)

git laravel-5 homestead

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

在Laravel中构建REST API

我将从无框架开发转到我与Laravel的第一次接触(使用版本5.1),我有点不知所措,需要处理的东西(迁移,种子,hateoas,变换器,单元测试,错误处理等) ).

我希望在show method它的部分返回时获得一些帮助(遵循REST概念).我有以下数据库结构:

公司 - >用户 - >门票 - >互动 - >附件

在此输入图像描述

现在,当列出特定故障单(如GET /customers/5/tickets/3)时,屏幕需要显示该故障单的所有交互,以及故障单表中的所有信息(有点像页眉)以及创建特定交互的每个用户的名称.

考虑到关系,我应该从单个呼叫中返回所有数据,还是应该从故障表中的信息保留在前端(来自index method呼叫)?即使我应该保留票证信息(页面标题),我仍然会interaction join users为每次互动留下+ N个附件.有什么方法可以解决这个问题?

我决定打开这个线程因为我试图对这个调用进行单元测试,我无法决定是否应该为数据库设置种子以获得所需的所有信息.

编辑

为了更好地澄清我的请求,我对如何处理数据库通信毫无疑问,我已经将模型设置为扩展Eloquent类,并且我定义了hasMany,belongsTo等数据.

namespace App\Models;

class Company extends Model {

    /**
     * Get the users from the company.
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function users() {
        return $this->hasMany('App\Models\User');
    }
}
Run Code Online (Sandbox Code Playgroud)

为了不让这个职位变得更大,我只会提供公司模式.我希望你们都能得到我所拥有的公司,用户,票证,互动附件模型的概念,并且随时可以使用.

编辑2

问题在于处理它的做法.是否应该 GET /customers/5/tickets/3返回票证记录,所有交互,每次交互的用户,每次交互的所有 …

php rest unit-testing laravel-5

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

PHP中的AbstractFactory没有方法重载

情况

我目前有4种类型的用户,我们预测将来至少还有3种.现在它们是:

  • 管理员(店铺管理员)
  • 员工(店长)
  • 员工(店员)
  • 顾客

在不久的将来,我将不得不让两位员工同时成为客户.我也有支持中心和记者.

问题

创建.创建.创建.我并不担心访问控制,权限等...我现在的代码可以在这方面做奇迹.我的问题只是关于创造.似乎抽象工厂对我来说可能是一个,但事实是所有那些"抽象教程"教学设计模式使用书籍和汽车只是没有帮助我把它带到我的情况.要么我的设计模式错误,要么我不理解它.

我的尝试

在UserFactory类中,我们可以看到问题的根源:abstract public function signUp();.这是不好的做法,甚至导致PHP 5.4+上的严格标准错误不尊重方法签名.在Java中,我会有方法重载来解决这个问题.在PHP中,方法重载的工作方式不同,不允许我以这种方式工作.

<?php

abstract class UserFactory {

    const ADMIN = 'AdminRecord';
    const MANAGER = 'ManagerRecord';
    const SALESMAN = 'SalesmanRecord';
    const CUSTOMER = 'CustomerRecord';

    public static function manufacture($type) {
        return new $type;
    }

    protected $accountController;
    protected $emailController;
    protected $toolMailer;

    function __construct() {
        $this->accountController = new AccountController();
        $this->emailController = new EmailController();
        $this->toolMailer = new ToolMailer();
    }

    abstract public function signUp();
}
Run Code Online (Sandbox Code Playgroud)

这是我的第一个用例:创建一个新的管理员.

class AdminRecord extends UserFactory { …
Run Code Online (Sandbox Code Playgroud)

php design-patterns abstract-factory

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

Laravel持续集成战略

请考虑以下情形:

一个code-release.sh脚本接受被推向了一个现成的去分支名位桶的git仓库.Web钩子触发Code Ship,因此所有测试都作为CI策略执行,成功时,在我的应用程序域上请求php脚本.

现在,我的目标是这个脚本可以准备好使用它,所以我必须这样做

  1. git pull [master]
  2. 作曲家更新
  3. php工匠迁移

此时我的直觉SCREAMS不会自动运行,php artisan migrate因为它会在某些时候发臭.但是,这意味着只要执行迁移并且在持续集成启动部署之后以及有人手动运行迁移之前可能会发生代码破坏,就需要进行人工干预.

我能想到的是database-backup.sh在迁移执行之前调用权限的步骤.

无论如何,我确信有人在那里使用Laravel和CI/CD,我想知道如何解决这种情况.

php git continuous-deployment laravel-5

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

显示表MySQL结果的别名

在MySQL中执行SHOW TABLES FROM your_db_name_here时,结果将Tables_in_ {your_db_name_here}作为索引.我想改变它,像这样:

SHOW TABLES as _tables FROM mydb;
Run Code Online (Sandbox Code Playgroud)

或类似的东西

SELECT Tables_in_mydb AS _tables FROM (SHOW TABLES FROM mydb);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mysql sql list

5
推荐指数
1
解决办法
5637
查看次数

在无头(无GUI)机器上运行Laravel Dusk

随着最近Laravel 5.4的发布,我想我会试一试.就像Reddit上的Ozymandias-X一样,我也对它感到沮丧.

我的设置

  • Windows 10作为主机;
  • CentOS 7作为访客(没有GUI安装,没有Vagrant)
  • Virtual Box的共享文件夹.

如果我打开机器并运行php artisan dusk,我会得到以下信息:

[08:14 AM]-[root@php7]-[/var/www/html/admin]-[git master]
# php artisan dusk
PHPUnit 5.7.11 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 25.91 seconds, Memory: 10.00MB

There was 1 error:

1) Tests\Browser\LoginTest::it_should_see_email_error_message
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"binary":"\/usr\/lib64\/chromium-browser\/chromedriver","args":["no-first-run"]}}}

Operation timed out after 5001 milliseconds with 0 out of -1 bytes received

/var/www/html/admin/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:287
/var/www/html/admin/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:121
/var/www/html/admin/tests/DuskTestCase.php:42
/var/www/html/admin/vendor/laravel/dusk/src/TestCase.php:180
/var/www/html/admin/vendor/laravel/framework/src/Illuminate/Support/helpers.php:639
/var/www/html/admin/vendor/laravel/dusk/src/TestCase.php:181
/var/www/html/admin/vendor/laravel/dusk/src/TestCase.php:111
/var/www/html/admin/vendor/laravel/dusk/src/TestCase.php:85
/var/www/html/admin/tests/Browser/LoginTest.php:24 …
Run Code Online (Sandbox Code Playgroud)

php linux laravel laravel-5.4 laravel-dusk

5
推荐指数
1
解决办法
3221
查看次数

Angular组件中的依赖注入,如指令

这是我以前用角度指令做的一件事

angular.module('app.directives').directive('login', ['$templateCache', function ($templateCache) {
    return {
        restrict: 'E',
        template: $templateCache.get('directives/login/login.html'),
        controller: 'LoginController as vm',
        scope: true
    };
}]);
Run Code Online (Sandbox Code Playgroud)

我已经非常依赖于使用模板缓存在我的指令模板中注入HTML内容.现在有了Angular 1.5,所有很酷的孩子都使用了这个新东西叫做component(),我正在看看它是否真的很好而且我在这个最开始的部分陷入困境:如何在组件本身注入东西(不在控制器中)?

在这种情况下,您可以看到我正在向login指令注入$ templateCache依赖项.我如何将此指令重写为组件?(请记住我希望在templateUrl上使用$ templateCache)

javascript angularjs angularjs-components

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