小编Ari*_*des的帖子

从子目录飞行PHP路由

所以我使用Flight PHP微框架(http://flightphp.com/)进行路由.我的问题是,如何在子目录中运行路由器?我的意思是,基本上,在文件夹中运行它"沙盒".

对于'/'的请求只是拉取常规的index.php文件.但是对'/ flight/file'的请求会使用Flight加载URL.

我知道你不能只将它转储到服务器上的文件夹中并希望它能够正常工作,因为FlightPHP需要相对于root的URL.

有没有办法运行FlightPHP隔离在一个目录中,其余的网站运行常规PHP?

编辑

我尝试将.htaccess文件放入子目录中.这具有特殊的效果,使得路线仍然像从根部那样起作用(例如/事物/ otherthing /何时应该是/ otherdirectory/thing/otherthing /)同时导致404回调不起作用.不是我的意图.

编辑2

.htaccess文件的内容,这是Flightphp网站建议的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

php .htaccess url-rewriting url-routing flightphp

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

学习Python艰难的练习43

我不明白脚本如何获得下一个房间,以及"引擎"和"地图"类的工作原理.这是一段摘录:

Class Map(object):

    scenes = {
        'central_corridor': CentralCorridor(),
        'laser_weapon_armory': LaserWeaponArmory(),
        'the_bridge': TheBridge(),
        'escape_pod': EscapePod(),
        'death': Death()
    }

    def __init__(self, start_scene):
        self.start_scene = start_scene

    def next_scene(self, scene_name):
        return Map.scenes.get(scene_name)

    def opening_scene(self):
        return self.next_scene(self.start_scene)

class Engine(object):

    def __init__(self, scene_map):
        self.scene_map = scene_map

    def play(self):
        current_scene = self.scene_map.opening_scene()

        while True:
            print "\n--------"
            next_scene_name = current_scene.enter()
            current_scene = self.scene_map.next_scene(next_scene_name)
Run Code Online (Sandbox Code Playgroud)

我根本不明白这些部分是如何工作的.我知道类和对象实例和属性以及所有其他OOP的工作原理,但由于某种原因,这部分代码我没有得到.主要是Map类.如果有人能够解释它会很棒.

另外(这可能需要阅读练习),为什么还需要这两个课程呢?难道你不能用类方法来代替它(即没有自我作为参数的方法).然后你可以调用,例如,CentralCorridor.enter().事实上,这就是我在阅读答案之前解决它的方法,并且结果很好.

对不起,我的主要问题是引擎和地图类的工作原理.另一件事是次要的.

提前致谢!

python

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

虚拟机的优势

我遇到的大多数语言都使用 VM 或虚拟机。Java(JVM)、Python、Ruby、PHP(HHVM)等语言。

然后是 C、C++、Haskell 等直接编译为 native 的语言。

我的问题是,使用 VM(操作系统独立性之外)有什么优势?通过使用 [源代码 -> 字节码 -> 本机] 而不是 [源代码 -> 本机],使用 VM 是否只是创建了一个额外的解释步骤?

可以直接编译为什么要使用VM?

编辑

我的理解是 Python、Ruby 等。使用类似于 VM 的东西,如果不完全符合这样的定义,脚本被编译为中间表示(对于 Python,例如 .pyc 文件)。

编辑 2

是的。查了一下。Python、Ruby 和 PHP 都使用中间表示,但根本不存储在单独的文件中,而是由 VM 直接执行。请参阅问题:Java“虚拟机”与 Python“解释器”用语?

“尽管 Python 在幕后使用了虚拟机,但从用户的角度来看,大多数时候人们可以忽略这一细节。”

language-agnostic jit operating-system bytecode vm-implementation

3
推荐指数
1
解决办法
524
查看次数

Objective-C Bool文字和宏

免责声明:Objective-C知识有限(传递好奇心).

if (@YES)
Run Code Online (Sandbox Code Playgroud)

VS

if (YES)
Run Code Online (Sandbox Code Playgroud)

有什么不同?

根据我的理解,@ YES是一个bool对象文字,YES是一个扩展为1的宏?它是否正确?如果是这样,为什么使用@YES代替YES,反之亦然?

objective-c

3
推荐指数
1
解决办法
561
查看次数

Laravel Eloquent Not Created_At今天

好吧所以我正在尝试进行一个查询,其中选择了不是created_at今天的用户并且我遇到了一些麻烦.我尝试过的所有东西都仍然被选中.这是我尝试过的一些东西(没有成功):

$users = User::where('created_at', '!=', date('Y-m-d H:i:s'))->get()
$users = User::where('created_at', '!=', new DateTime())->get()
$users = User::where('created_at', '!=', date('Y-m-d'))->get()
$users = User::where('created_at', '!=', new DateTime('today'))->get()
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用<>运算符代替!=.

我怀疑问题在于用户不是"第二次"创建的,因此它们不相等并且通过它们.我怎样才能解决这个问题?

旁注:我正在使用SQLite进行开发,但会在实时网站上使用Postgres,所以我想要兼容两者.

php laravel eloquent

3
推荐指数
1
解决办法
3367
查看次数

如何在加载模型时在Ember中显示加载模板?

我想在下一个模板加载之前在Ember中渲染一个加载模板.现在我有一个应用程序路径的加载模板,如果用户直接导航到URL,它可以正常工作.但是,如果用户link-to从应用程序的另一个页面中单击一个页面,我希望显示相同的模板.如何才能做到这一点?

调度afterRender不起作用,因为页面尚未"加载"(现在它只是在下一页加载时在上一页停留几秒钟;使用afterRender导致相同的事情,但是一旦加载你得到一个加载div在淡出之前的简要概述:显然不是预期的行为).

如何显示加载模板呢?

减少加载时间不是一种选择,我们做了一些非常繁重的计算.

编辑:我确实认为我的问题与建议重复的问题不同,因为我想为所有路由提供相同的加载模板,默认加载模板结构不提供."旧版"LoadingRoute解决方案不再适用,因为最新版本的Ember不推荐使用视图.

javascript templates ember.js ember-cli

3
推荐指数
1
解决办法
2497
查看次数