کمک مشکله کلافه کننده با zend framework
سلام خدمته دوستانه عزيز،
چند وقتيه که من دارم رو يادگيريه zend framework کار ميکنم.
پيوسته با مشکل مواجه ميشام.
حتی برناميه hello world رو هم نميتونم بنويسم(با اينکه دقيقاً طبقه نمونه هايه که دارم مينويسم)
من ميخواستم تنظيمتم و برناممو بنويسم و کسی اگه ميتونه اشکالمو بگه.
اولاً directory strcture ام طبقه زيره:
\Htdocs
تويه httpd.config يه apache هم
<Directory />
AllowOverride All
</ Directory>
برايه اينکه اجازه override رو به htaccess. بدم
اينم فايل htaccess. امه
RewriteEngine on
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
حالا 1 فايل به نامه IndexController.php تو
htdocs\application\controllers
دارم که سکريپتش اينه:
Zend_Loader::loadClass(’Zend_Controller_Action );
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
echo "<center><h1>HelloWorld</h1></center>";
}
}
در نهايت وقتی تو address bar تايپ ميکنم :
http://www.example.com/index/index
که طبقه controller و action ام بايد همين آدرس باشه
error 404 not found ميده
2 هفته است که همه کار کردم ولی هيچ،ديگه واقعاً کلافه شدم پست دادم که اگه ميشه کسی کنمم کنه
پيشاپيش متشکرم
نقل قول: کمک مشکله کلافه کننده با zend framework
محتویات فایل bootstrap رو بزار ببینم . چی کد زدی
نقل قول: کمک مشکله کلافه کننده با zend framework
نقل قول:
نوشته شده توسط
zamanphp
محتویات فایل bootstrap رو بزار ببینم . چی کد زدی
zamanphp جان متشکرم از توجهتون
اينم index.php (bootstrap) امه:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('Zend/Controllers');
$controller->dispatch();
اينم اضافه کنم که هيچ مشکلی توو include_path هام نيستن.
اينم اضافه کنم که خودم احتمال ميدم که ايراد از apach باشه،چون که وقتی ادرسو تو adress bar تايپ
ميکنم نميفهمه که انگار اين
www.example.com, لوکاله و ميخواد بره ادرسو از اينترنت بياره. به علاوه
تو httpd.config، تو
<vitrualhost>
ServerNameام هست همون
www.example.com
نقل قول: کمک مشکله کلافه کننده با zend framework
چند تا اشکال داری که به صورت نکته ای بهت می گم
1. ساختارت رو درست طراحی کن (نمونه فایل رو دریافت کن)
2. شما تو bootstrap داری registerAutoload رو فراخوانی می کنی . پس چه نیازی هست که تو controller های خودت loadClass رو دوباره صدا می زنی . خود ZendLoader خودش متوجه میشه!
3. مسیر controllers های برنامه ات رو هم داری به صورت اشتباه به dispatcher معرفی می کنی در حالی که شما داری مسیر کامپوننت Zend_Controller رو داری بهش می دی! نه برنامه رو!
4. راستی www.example.com رو تو فایل hosts تعریف کردی؟
خب من تمام اشکالات رو برطرف کردم تو یه فایل جدید. اون رو دریافت و تست کن
سوالی داشتی من در خدمت هستم
موفق باشید
نقل قول: کمک مشکله کلافه کننده با zend framework
zamanphp جان دستت درد نکنه، ولی بازم نشد، ميدونين تو hosts, همه چيو ست کردم(ip و www.example.com)
ولی وقتی ping www.example.com ميکنم، destination unreachable ميده
و بازم نا موفق بود اين تلاشم
نقل قول: کمک مشکله کلافه کننده با zend framework
اون کد رو سیستم من بدون هیچ مشکلی الان کار میکنه.
مجبورم یادآوری کنم :
به فرض برنامه روی درایو c هست:
پس مسیر root این هست :
C:\code_example\htdocs
حالا واسه تنظیم واسه آپاچی :
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1>
DocumentRoot C:\code_example\htdocs
ServerName www.example.com
</VirtualHost>
تنظیم واسه فایل hosts :
127.0.0.1 www.example.com
تا این جا مه چیز ok هست
اگه باز وقتی آدرس رو می زنی و سعی داره با اینترنت وصل بشه و از بابت apache هم مطمئن هستی 100 درصد مشکل از hosts هست که ویندوز نمی تونه اون رو اجرا کنه
چون خودم بارها با این مشکل مواجه شده ام و مجبور بودم ام ویندوز رو upgrade کنم
امیدارم مشکلتون حل بشه
موفق باشید
نقل قول: کمک مشکله کلافه کننده با zend framework
سلام
باید ببخشید که این تاپیک رو میارم بالا. اما من هم دقیقا این مشکل رو دارم. برای من fatal error میده
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in D:\wamp\www\zfquickstart2\library\Zend\Controller\ Dispatcher\Standard.php:241 Stack trace: #0 D:\wamp\www\zfquickstart2\library\Zend\Controller\ Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 D:\wamp\www\zfquickstart2\public\index.php(48): Zend_Controller_Front->dispatch() #2 {main} thrown in D:\wamp\www\zfquickstart2\library\Zend\Controller\ Dispatcher\Standard.php on line 241
اینجا در مرحله Create an Action Controller & View هستم که بر اساس چیزی که توی quick start هست باید Hello, Zend Framework MVC! رو ببینم. اما این ارور رو نشونم میده
نقل قول: کمک مشکله کلافه کننده با zend framework
مسیر root تون همنون D:\wamp\www\zfquickstart2\public\ هست؟
چون دارین از wamp استفاده می کنید، می گم.
نقل قول: کمک مشکله کلافه کننده با zend framework
خب بله. البته root به root/public ری دایرکت شده(htaccess.)
تست ساده زیر رو درست نشون میده
<?php
// public/index.php
echo "Hello";
ولی مثال های خودش رو نمیتونه نشون بده
نقل قول: کمک مشکله کلافه کننده با zend framework
پس به احتمال زیاد مسیر controllers ها درست ست نمیشه
محتویات فایل bootstrap رو بزار
نقل قول: کمک مشکله کلافه کننده با zend framework
راستش من هم همینجور فکر میکنم ولی : 1) چند بار از روی tutorial خود Zend جلو رفتم. و حتی اسم ها رو هم کپی کردم
2) پروژه آماده zend رو هم دانلود کردم و اون رو هم تست کردم. اما نشد(البته اون کامل بود و به دیتا بیس نیاز داشت)
این هم bootstrap.php
<?php
defined('APPLICATION_PATH')
or define('APPLICATION_PATH', dirname(__FILE__));
defined('APPLICATION_ENVIRONMENT')
or define('APPLICATION_ENVIRONMENT', 'development');
$frontController = Zend_Controller_Front::getInstance();
$frontController->setControllerDirectory('D:\wamp\www\zfquickstart\ application\controllers');
$frontController->setParam('env', APPLICATION_ENVIRONMENT);
unset($frontController);
نقل قول: کمک مشکله کلافه کننده با zend framework
با سلام
چون شما دارید نمونه برنامه رو توی زیر دایرکتوری ها اجرا می کنید باید یه تغییرات جزئی تو کد بدید
مسیر root شما D:\wamp\www می باشد
و نام دایرکتوری حاوی نمونه برنامه zfquickstart2 می باشد . پس :
فایل .htaccess واقع در مسیر D:\wamp\www\zfquickstart2\public\ رو به شکل زیر اصلاح کن:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /zfquickstart2/public/index.php [NC,L]
سپس فایل bootstrap رو قسمت ست controllers ها رو به شکل زیر اصلاح کن :
$frontController->setControllerDirectory(APPLICATION_PATH . '/controllers');
$frontController->setBaseUrl('/zfquickstart2/public');
تمام.
من مجبور شدم نرم افزار wamp رو برای رفع مشکلتون دریافت و نصب کنم که نمونه برنامه رو به طریق بالا اصلاح و روش اجرا کردم
سوالی بود من در خدمت شما هتسم
امیدوارم مشکلتون حل بشه. موفق باشید.
نقل قول: کمک مشکله کلافه کننده با zend framework
سلام. خیلی خیلی ممنون. شرمنده کردید.
بله حل شد.
اما من نمیدونم چرا این مشکل باید پیش بیاد. چون این آموزش برای سطح مبتدی هست. و من یشچ زمان نمیتونستم حلش کنم. شاید zend برای یک مبتدی گزینه خوبی نباشه.
به حر حال ممنون.
نقل قول: کمک مشکله کلافه کننده با zend framework
خواهش می کنم دوست عزیز.:چشمک:
درست می فرمایید ZF رو هر کسی سراغش نمی ره. به قول یکی از دوستان بیش از اندازه مهندسی کار شده و فهم رو برای مبتدی ها مشکل می کنه . واسه همین اکثرا مبتدی ها می رن سراغ دیگر فریم ورک ها . من خودم از نسخه 0.2.0 رفتم سراغش و به دلم نشت .
یه نیگا تو همین انجمن بندازین. تو این انجمن من تا الان فقط همین پست رو درباره ZF دیدم و پاسخ داده ام.
من با کمک یکی از دوستان که کار طراحی رو عهده داره ، در حال پیاده سازی منبعی فارسی برای Zend Framework هستیم با نام ZendFramework.ir که شامل بخشهای مفید زیادی هست بخصوص انجمن . که تمامی بخش ها رو دارم با ZF پیاده می کنم. انشالله در آینده ای نزدیک اون رو بالا می یاریم
منبع فارسی پشتیبانی zend framework
نقل قول:
یه نیگا تو همین انجمن بندازین. تو این انجمن من تا الان فقط همین پست رو درباره ZF دیدم و پاسخ داده ام.
به نظر من هم ZF خیلی مهجور واقع شده و راه اندازی یه منبع فارسی کار خیلی خوبیه واسه گسترش اون. دائم به سایت راه اندازی نشده سر می زنم! شاید هم بتونم تو راه اندازیش کمکتون کنم.
فقط اینو بگم از قبل یه جایی هم واسه zend server و zend studio کنار بزارید!
موفق باشید