2016-03-20 6 views
1

в HTTPd-vhosts.conf Я добавил:Как создать виртуальный хост для проекта QCubed в xampp в Windows?

NameVirtualHost *:80 

<VirtualHost *:80> 
    DocumentRoot "C:/xampp/htdocs/tef_ticketing/workspace/htdocs" 
    ServerName tef_ticketing.dev 
    ServerAlias www.tef_ticketing.dev 
    <Directory "C:/xampp/htdocs/tef_ticketing/workspace/htdocs"> 
     DirectoryIndex home.php 
     AllowOverride All 
     Require all Granted 
    </Directory> 
</VirtualHost> 

В C: \ Windows \ System32 \ Drivers \ Etc \ хостов:

127.0.0.1  localhost 
127.0.0.1  www.tef_ticketing.dev 

в configuration.inc.php

$url = "tef_ticketing.dev"; 
define("__DOCROOT_URL__", $url); 

home.php

<?php 
require_once (dirname(__FILE__) . '/qcubed.inc.php'); 
\QApplication::Redirect('test_page'); 

в .htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ home.php [L,QSA] 
    RewriteRule ^$ ajax.php [L,QSA] 
    RewriteRule ^home$ home.php [L,QSA] 
    RewriteRule ^test_page$ form.php?form=TestForm [L,QSA] 

В TestForm.class.php

<?php 
namespace Tef_Ticketing\Presentation\Web\Forms; 
use Tef_Ticketing\Presentation\Web\Forms\Form; 

class TestForm extends Form { 
    protected $btnTest1; 
    protected $btnTest2; 
    protected $btnTest3; 
    protected $lblTest1; 

    protected function Form_Create() { 
     parent::Form_Create(); 

     $this->btnTest1 = new \QButton($this); 
     $this->btnTest1->Text = 'save1'; 
     $strJavaScript = "qc.pA('TestForm', 'btnTest2', 'QClickEvent', '', 'QFormWaitIcon');"; 
     $this->btnTest1->AddAction(new \QClickEvent(), new \QAjaxAction('btnTest1_click')); 
     $this->btnTest1->AddAction(new \QClickEvent(), new \QJavaScriptAction($strJavaScript)); 

     $this->btnTest2 = new \QButton($this, 'btnTest2'); 
     $this->btnTest2->Text = 'save2'; 
     $this->btnTest2->AddAction(new \QClickEvent(), new \QAjaxAction('btnTest2_click')); 

     $this->btnTest3 = new \QButton($this); 
     $this->btnTest3->Text = 'save3'; 
     $this->btnTest3->AddAction(new \QClickEvent(), new \QAjaxAction('btnTest3_click')); 

     $this->lblTest1 = new \QButton($this); 
     $this->lblTest1->Text = 'init'; 
    } 

    public function btnTest1_click() { 
     sleep(5); 
     $this->lblTest1->Text = 'a'; 
    } 

    public function btnTest2_click() { 
    } 

    public function btnTest3_click() { 
     $this->lblTest1->Refresh(); 
    } 

} 

Когда я достигаю в браузере следующую ссылку www.tef_ticketing.dev Я перенаправлены http://www.tef_ticketing.dev/test_page, и это нормально. Но у меня есть ошибка:

Fatal error: Class 'Tef_Ticketing\Presentation\Web\Forms\Form' not found in C:\xampp\htdocs\tef_ticketing\workspace\tef_ticketing-presentation\src\Web\Forms\TestForm.class.php on line 5 

ответ

0

кажется, что вы не имеете Tef_Ticketing \ Presentation \ Web \ Forms \ Form.class.php файл с классом Form определен. В вашем файле вы полагаетесь на стандарт автозагрузчика PSR-4: http://www.php-fig.org/psr/psr-4/. Для этого требуется иметь прямую связь между именами пространства имен имен и структуры папок файловой системы и именами файлов.

0

Попробуйте

class TestForm extends \Form {

вместо

class TestForm extends Form {