我想也许这是一个系统问题,但最近做了一个全新的安装(win7 64位)和一个干净的安装conemu(旧的win32系统上的conemu和console2都有同样的问题).我发现研究的所有内容都与通过命令行添加变量有关.我这样做是通过开始 - >控制面板 - >系统 - >高级系统设置,然后重新启动控制台.cmd正确地拾取路径.
当我手动向系统或用户PATH变量添加新路径然后重新启动控制台并回显%path%时,它没有重新加载新的PATH变量.
CMD.EXE:
C:\Users\lotus>echo %path%
C:\Python33\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\
System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;C:\PHP;C:\ProgramData\
Composer\bin;C:\PHP;C:\PHP\ext;C:\Ruby200-x64\bin;C:\Users\lotus\AppData\Roaming
\npm
Run Code Online (Sandbox Code Playgroud)
conemu:
C:\Program Files\ConEmu>echo %path%
C:\Program Files\ConEmu\ConEmu;C:\Program Files\ConEmu;C:\Python33\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Ruby200-x64\bin
Run Code Online (Sandbox Code Playgroud)
我知道有一个额外的C:\ PHP但这是另一个问题.如果我删除它,我仍然有同样的问题.
谢谢
我知道在puppet中排序的基本知识是在特定包之前运行apt-get update但是想指定只运行apt-get update一次然后执行其余的puppet文件.那可能吗?
所有上市的方式在这里需要可以运行每个包或使用箭头前apt-get或者需要指定每个包.
试图在开发环境中使用sqlite.它似乎正确检测环境,但当我尝试迁移到development.sqlite时,我得到异常抛出"数据库不存在"
工匠指挥
php artisan migrate --env=development
Run Code Online (Sandbox Code Playgroud)
引导/ start.php
$env = $app->detectEnvironment(array(
'development' => array('localhost'),
));
Run Code Online (Sandbox Code Playgroud)
应用程序/配置/开发/ database.php中
<?php
return array(
'default' => 'sqlite',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/development.sqlite',
'prefix' => '',
)
)
);
Run Code Online (Sandbox Code Playgroud)
据我所知laravel应该创建文件,如果它不存在,但因为它没有我尝试手动创建文件仍然得到抛出的异常.
更新:也许与env不对,因为如果我为数据库尝试':memory',就会发生同样的事情.
更新2:我尝试运行样本单元测试但添加到TestCase.php
/**
* Default preparation for each test
*
*/
public function setUp()
{
parent::setUp(); // Don't forget this!
$this->prepareForTests();
}
/**
* Creates the application.
*
* @return Symfony\Component\HttpKernel\HttpKernelInterface
*/
public function createApplication()
{
$unitTesting = …Run Code Online (Sandbox Code Playgroud) 这与此问题有关如何在laravel 4中注册命名空间,但我相信我已经解决了这个问题,而命名空间现在正在运行.
我遇到了一个新问题.我相信错误来自于尝试在控制器构造函数中键入提示,并且与使用命名空间和使用ioc有关.
BindingResolutionException: Target [App\Models\Interfaces\PostRepositoryInterface] is not instantiable.
Run Code Online (Sandbox Code Playgroud)
下面的方法工作得很好,直到我尝试引入命名空间.我可以删除所有名称空间并将接口和存储库放在同一目录中,但是想知道如何使用这种使用ioc的方法来使用名称空间.
这是相关文件.
routes.php文件
Route::resource('posts', 'PostsController');
Run Code Online (Sandbox Code Playgroud)
PostController.php
<?php
use App\Models\Interfaces\PostRepositoryInterface;
class PostsController extends BaseController {
public function __construct( PostRepositoryInterface $posts )
{
$this->posts = $posts;
}
}
Run Code Online (Sandbox Code Playgroud)
PostRepositoryInterface.php
<?php namespace App\Models\Interfaces;
interface PostRepositoryInterface {
public function all();
public function find($id);
public function store($data);
}
Run Code Online (Sandbox Code Playgroud)
EloquentPostRepository.php
<?php namespace App\Models\Repositories;
use App\Models\Interfaces\PostRepositoryInterface;
class EloquentPostRepository implements PostRepositoryInterface {
public function all()
{
return Post::all();
//after above edit it works to this point
//error: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用部署到heroku的测试应用程序上的newrelic.
我有遥控器起源(公共github repo)和heroku.
在使用newrelic.yml文件推送到heroku之后,我希望能够将更改推回原点但不包含newrelic.yml文件,因为它包含license_key.
我尝试在.gitignore中放置config/newrelic.yml,但它仍然跟踪文件并将文件推送到原点.然后我尝试删除文件但无法获得干净的"git status".
我尝试了rm config/newrelic.yml,但是当我下次推送到heroku时它甚至在.gitignore中它删除了heroku上的文件,导致newrelic监视停止.
我在SO上看到了其他类似的问题,答案是指heroku配置变量https://devcenter.heroku.com/articles/config-vars,但是如果有的话,不理解它是如何相关的,去除github的配置文件.
谢谢
问题:在PostController.php的第4行找不到类PostRepostioryInterface或者修改命名空间我甚至没有找到类App\Models\Interfaces\PostRepositoryInterface
问题:如何在laravel 4中注册命名空间?要让L4识别此命名空间中的类/接口,我需要做什么?
Larave 3在ClassLoader中有一个$ namespaces静态对象,您可以在其中添加名称空间
Autoloader::namespaces(array(
'App\Models\Interfaces' => path('app').'models/interfaces',
));
Run Code Online (Sandbox Code Playgroud)
我不确定我是否拥有laravel 3的权利,但无论如何,Laravel 4中不存在AutoLoader,并且ClassLoader存在,但Laravel 4中的ClassLoader中不存在方法命名空间.
我已经看过这个但是如果没有以某种方式注册命名空间它似乎没有用. 在Laravel 4中使用名称空间
结构示例:
app/models/interfaces
PostRepostitoryInterface.php
app/models/repositories
EloquentPostRepository.php
namespaces:
App\Models\Repositories;
App\Models\Interfaces;
Run Code Online (Sandbox Code Playgroud)
文件:
PostRepositoryInterface.php
<?php namespace App\Models\Interfaces;
interface PostRepositoryInterface {
public function all();
public function find($id);
public function store($data);
}
Run Code Online (Sandbox Code Playgroud)
EloquentPostRepository.php
<?php namespace App\Models\Repositories;
use App\Models\Interfaces\PostRepositoryInterface;
class EloquentPostRepository implements PostRepositoryInterface {
public function all()
{
return Post::all();
}
public function find($id)
{
return Post::find($id);
}
public function store($data)
{
return Post::save($data);
}
}
Run Code Online (Sandbox Code Playgroud)
PostController.php
<?php
use …Run Code Online (Sandbox Code Playgroud) 我想解析一行文本,其中单词由空格分隔,并将每个单词存储在其自己的数组模拟变量中。根据ss64我应该能够做到这一点。我可能不理解 delims 或令牌,因为我的代码适用于 1 次迭代并停止。
::@echo off
setlocal enabledelayedexpansion
set string=foo bar baz
set /a index=0
for /F "tokens=* delims= " %%i in ("foo bar baz") do (
echo %%i
echo !index!
set words[%index%]=%%i
set /a index+=1
echo !index!
)
set words[
Run Code Online (Sandbox Code Playgroud)
这是我通过调试回显得到的输出:
C:\Users\isimm\Desktop\batintercept>stringparse.cmd
C:\Users\isimm\Desktop\batintercept>setlocal enabledelayedexpansion
C:\Users\isimm\Desktop\batintercept>set string=foo bar baz
C:\Users\isimm\Desktop\batintercept>set /a index=0
C:\Users\isimm\Desktop\batintercept>for /F "tokens=* delims= " %i in ("foo bar baz") do (
echo %i
echo !index!
set words[0]=%i
set /a index+=1
echo !index!
)
C:\Users\isimm\Desktop\batintercept>( …Run Code Online (Sandbox Code Playgroud)