标签: include-path

在PHP中包含文件的最佳方法?

我目前正在开发一个PHP Web应用程序,我想知道包含文件(include_once)的最佳方式是什么,它仍然是可维护的代码.通过maintanable我的意思是,如果我想移动一个文件,重构我的应用程序以使其正常工作是很容易的.

我有很多文件,因为我尝试了很好的OOP实践(一个类=一个文件).

这是我的应用程序的典型类结构:

namespace Controls
{
use Drawing\Color;

include_once '/../Control.php';

class GridView extends Control
{
    public $evenRowColor;

    public $oddRowColor;

    public function __construct()
    {
    }

    public function draw()
    {
    }

    protected function generateStyle()
    {
    }

    private function drawColumns()
    {
    }
}
}
Run Code Online (Sandbox Code Playgroud)

php include-path

5
推荐指数
2
解决办法
4523
查看次数

用php获取父文件夹路径

我正在研究我的第一个MVC框架,并希望为BASE_PATH,APP_PATH,LIB_PATH和PUBLIC_PATH定义4个常量.我的文件结构如下所示:

/
/app
    /controllers
    /models
    /views
/config
/db
/lib
/public_html
    /css
    /js
    /img
Run Code Online (Sandbox Code Playgroud)

我的index.php文件位于public_html目录中.目前有以下代码:

error_reporting(E_ALL);
define('BASE_PATH',dirname(realpath(__FILE__)) . "/../");
define('APP_PATH',dirname(realpath(__FILE__)) . "/../app/");
define('LIB_PATH',dirname(realpath(__FILE__)) . "/../lib/");
define('PUBLIC_PATH',dirname(realpath(__FILE__)) . "/");

require LIB_PATH . 'core.php';
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我觉得必须有一个更好的方法,没有所有的"..".任何建议或这是最好的方式吗?让我知道.谢谢!


回答

感谢@fireeyedboy和@KingCrunch,我想出了我想要的解决方案.这是我的最终代码:

define('PUBLIC_PATH', dirname(__FILE__) . "/");
define('BASE_PATH', dirname(PUBLIC_PATH) . "/");
define('APP_PATH', BASE_PATH . "app/");
define('LIB_PATH', BASE_PATH . "lib/");
Run Code Online (Sandbox Code Playgroud)

php oop model-view-controller include-path

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

Xcode:即使路径似乎存在,SRCROOT也无法正常工作

我在Xcode中编译时收到"找不到文件"的错误.我的路径是相对于$ SRCROOT指定的,似乎是正确识别的.有什么问题?

xcode path include-path

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

容易包含cmake中库依赖的头文件

我正在尝试使用CMake进行C++存储库,但是我遇到了一些麻烦,试图在没有大量额外CMake代码的情况下轻松地在同一源代码树中构建针对库的应用程序.

源树的布局基本如下:

ROOT
    libs/
         lib1/
         lib2/
         lib3/
    apps/
         app1/
         app2/
         app3/
Run Code Online (Sandbox Code Playgroud)

这些库彼此独立,并且应用程序可以链接到一个或多个库.

目前我有一个根CMakeLists.txt,它将每个应用程序和库列为子目录,这样如果更改了库并重建了应用程序,那么库也是如此.这工作正常,CMake链接它,而我不必指定库的位置,但我没有看到为包含目录做类似的事情的方法.

有没有一种常见的方法来处理这个问题?我不希望每个应用程序的CMakeLists.txt都必须手动列出它需要的库的路径.

c++ cmake include-path

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

OpenLayers.js要使用哪些文件?

当我从readme文件中红色时,openlayers.js有多种选择来包含文件和主题.

我想要的是使用lightest solution of openlayers.js文件.

openlayers.light.js在我的应用程序中包含了它,它创建了地图但没有显示它们,请检查:

在此输入图像描述

我忘了包含其他一些文件吗?

我的结构结构如下:

/vendor
   /js
     openlayers.light.js
     /img
     /theme
Run Code Online (Sandbox Code Playgroud)

如何显示地图图层?

openlayers.light.js也适用于移动设备(一旦解决了这个问题:P)?或者我也需要包括在内openlayers.mobile.js

这是不使用openlayers.light.js但使用openlayers.js(740kb)的代码:

var _element = "#map";
 var map = new OpenLayers.Map (_element, {
    controls: [
    new OpenLayers.Control.Navigation({
      dragPanOptions: {
        enableKinetic: true
      }
    }),
    new OpenLayers.Control.Zoom()
    ],
    projection: new OpenLayers.Projection("EPSG:900913"),
    displayProjection: new OpenLayers.Projection("EPSG:4326")
  });

  var lonLat = new OpenLayers.LonLat(_lon, _lat).transform (
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection …
Run Code Online (Sandbox Code Playgroud)

javascript maps file openlayers include-path

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

如何让g ++列出所有#included文件的路径

我想让g ++/gcc告诉我非系统的所有路径#include in C++ build.事实证明,这是一个艰难的搜索,因为谷歌通过十种不同的方式解释它.

我想要这些文件名和路径,以便我可以将它们添加到Exuberant CTAGS的搜索路径中.我们有一个庞大的项目,如果我在整个事情上使用ctags,生成标签文件大约需要半个小时,编辑器查找的时间也差不多.

我们使用CMakeLisats进行编译.如果有一个指令我可以粘贴到CMakeLists.txt,这将是额外的精彩.

我真的不需要默认路径和文件名,Johnathan Wakely 在这里提供了一个很好的工具.我认为这几乎涵盖了这是一个交叉编译工作的事实.我也不需要跨系统文件.

c c++ gcc g++ include-path

5
推荐指数
2
解决办法
5296
查看次数

包含来自vendor/assets/javascripts的javascript

如何在单个视图文件(不在application.js中)中包含位于vendor/assets/javascripts中的javascript文件?

某种javascript_include_tag?请帮我解释语法

我尝试过以下内容并不起作用:

  • javascript_include_tag'回复'
  • javascript_include_tag'response.js'
  • javascript_include_tag'vendor/assets/javascripts/respond'
  • javascript_include_tag'proforts/assets/javascripts/respond.js'

谢谢

ruby-on-rails include include-path ruby-on-rails-3

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

如何在Cython中指定`.pxd`文件的路径

我的项目具有以下目录结构:

.
??? Makefile
??? pxd
??? pyx
?   ??? Landscaping.pyx
?   ??? Shrubbing.pxd
?   ??? Shrubbing.pyx
??? setup.py
Run Code Online (Sandbox Code Playgroud)

但是,如果我移到Shrubbing.pxd其他任何地方,例如pxd/,我将收到以下错误:

Error compiling Cython file:
------------------------------------------------------------
...
import pyx.Shrubbing
cimport Shrubbing
       ^
------------------------------------------------------------

pyx/Landscaping.pyx:2:8: 'Shrubbing.pxd' not found

Error compiling Cython file:
------------------------------------------------------------
...
import pyx.Shrubbing
cimport Shrubbing

cdef Shrubbing.Shrubbery sh
    ^
------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为setup.py我有:

from distutils.core import setup, Extension
from Cython.Build import cythonize
setup(ext_modules=cythonize([
    Extension(
        'pyx.Landscaping',
        sources=["pyx/Landscaping.pyx"],
        include_dirs=['pxd']), # <-- HERE
    Extension('pyx.Shrubbing', sources=["pyx/Shrubbing.pyx"])
]))
Run Code Online (Sandbox Code Playgroud)

明确指定的新目录Shrubbing.pxd …

cython include-path

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

获得带有本地CUDA支持的CMake的C ++目标中的CUDA包含目录?

在CMake 3.8版中,引入了对CUDA语言的原生支持。当项目将CUDA作为其语言之一时,CMake将继续查找CUDA(例如,它找到nvcc二进制文件)。

只要您只编译CUDA代码-就足够了。但是,如果您想在该项目中编译C ++目标怎么办?CUDA包含不是-I自动生成的,并且CMakeCache.txt似乎在任何地方都不包含CUDA包含路径。

find_package(CUDA 9.0 REQUIRED)即使CMake本身已经找到CUDA,我是否真的必须运行某些程序?或者-我可以通过其他方式获取include目录吗?

c++ cuda cmake include-path

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

更新到macOS Mojave后,编译器无法搜索“ / usr / local / include”

在更新到macOS Mojave之后,OS在/usr/local/include使用clang++从命令行,即Xcode外部)进行编译时,无法在其中搜索标头。请注意,/usr/local/include对于我的系统,CMake将在其中安装标头的默认路径,因此对于手动包含此标头感到很奇怪。

顺便说一句,我还执行了全新安装,导致了同样的问题。在后者中,我具有以下顺序:

  1. 从App Store安装了Xcode。
  2. xcode-select --install

该问题似乎与该问题类似,建议该问题

  • 运行xcode-select --install。这显然不能解决问题。通过重新运行install命令坚持这一点会导致error: command line tools are already installed
  • 然后有建议检查的输出xcode-select -p。它显然应该读为/Library/Developer/CommandLineTools,而不是 /Applications/Xcode.app/Contents/Developer我的情况。建议是“从Applications目录中删除[sic] Xcode”,这似乎有些残酷。

如何解决呢?

macos clang include-path

5
推荐指数
0
解决办法
1132
查看次数