# زبان های اسکریپتی > PHP > Zend Framework >  نصب زند فریم ورک در لوکال

## binboy

سلام
خیلی خوشحالم که بخش جداگانه ای با مدیران پر تلاش برای افزایش آگاهی برنامه نویسان عزیز از این فریم ورک قدرتمند و سخت بوجود اوردید.
اولین موضوع این بخش را اختصاص می دهم به اولین مرحله  شروع با زند، آن هم جگوگی نصب آن بر روی زمپ است. راستشو بخواید مقالات انگلیسی زیاد خوندم و روش های زیادی وجود دارد ولی الان گیجم و نمی دونم چرا نصب نمیشه! لطفا شما یک توضیح مفصل و کارامد راجب نصب این فریم ورک روی زمپ بدین؟
با تشکر

----------


## HRezaei

بنده هم از *funpatogh* عزیز بابت راه اندازی این بخش تشکر می کنم.
اما درمورد *ZF* به نظر من، قدرتمند هست اما سخت نیست.
نصب خاصی هم نیاز نداره به اون معنایی که ما از *"نصب"* تو ذهن داریم.
برای استفاده ازین فریم ورک کافیه فایل هاش رو روی هاردتون extract کنید. بعد مسیر پوشه ی library (که داخل فایل های کپی شده هستش) رو به php include path اضافه کنید. به همین سادگی شما می تونید از کلاس های ZF استفاده کنید.
برای اضافه کردن library به include path هم میتونید از کدی شبیه این :
set_include_path(implode(PATH_SEPARATOR, array(
   "path/to/library",
    get_include_path(),
)));
استفاده کنید.
یا اینکه فایل php.ini رو تغییر بدید و php رو ریست کنید.(همون زمپ، ومپ یا...که ریست کنید phpهم ریست میشه)
برای تغییر php.ini هم اگه لوکالتون ویندوزه خط 
;include_path = ".;c:\php\includes"
رو پیدا کنید (یا چیزی شبیه به اون) و از شکل توضیح درش بیارید. یعنی ; اولش رو حذف کنید. بعد هم مسیر library رو با یه جداکننده ; به داخل "" اضافه کنید. شبیه این:
include_path = ".;c:\php\includes;c:\path\to\library"
توی لینوکس هم ظاهرا همین طوره، الا اینکه جداکننده کاراکتر : هستش، کاراکتر\ با / عوض میشه و به حروف کوچیک و بزرگ هم حساسه
داخل خود php.ini مثالش هست.
در حقیقت کافیه موتور php آدرس کتابخونه ی زند رو بلد باشه تا شما بتونید از کلاساش استفاده کنید. البته راه اندازی یه Zend_Application و autoloading و autorouting بحثای دیگه ایه که فکر نمی کنم به نصب این فریم ورک ربطی داشته باشه ولی اگه بخواین پروژتون رو کامل با ZF بنویسید یه چندتا کار ابتدایی تو این زمینه ها باید انجام بدید(url_rewriting,...)

----------


## binboy

ممنون از پاسخ
اگر مرجع فارسی (کتاب، مقاله، سایت و ...) جهت آموزش زند فریم ورک وجود دارد، معرفی کنید؟



> بنده هم از *funpatogh* 
> در حقیقت کافیه موتور php آدرس کتابخونه ی زند رو بلد باشه تا شما بتونید از کلاساش استفاده کنید. البته راه اندازی یه Zend_Application و autoloading و autorouting بحثای دیگه ایه که فکر نمی کنم به نصب این فریم ورک ربطی داشته باشه ولی اگه بخواین پروژتون رو کامل با ZF بنویسید یه چندتا کار ابتدایی تو این زمینه ها باید انجام بدید(url_rewriting,...)


بله منظورم طریقه استفاده زند در پروژه است. یک مثال کاربردی یا توضیح فرقی ندارد، برای استفاده این فریم ورک بزنید ممنون میشم؟
در ضمن تا آنجا که من جستجو کردم مرجعی فارسی پیدا نکردم اگر هم شما سراغ دارید بدید تا استفاده کنیم اگر نه که یک همت کنید و خودتون بشید مرجع، چون فارسیش نیست میتونه کار ارزشمندی بشه. این فقط یک پیشنهاد است.
با تشکر

----------


## HRezaei

یکی از دوستان (zamanphp) چند وقتیه داره رو پیشنهاد شما کار می کنه.
http://zendframework.ir
به نظر میرسه همتش هست، ولی وقت و فرصتش نیست! باید یه کم صبور باشیم.




> بله منظورم طریقه استفاده زند در پروژه است. یک مثال کاربردی یا توضیح فرقی ندارد، برای استفاده این فریم ورک بزنید ممنون میشم؟


اگه از Zend Studio استفاده می کنید می تونید به منوی File->New->Example برید و ویزاردی که باز می شه رو با گزینه ی Zend Framework Example Project ادامه بدید تا یه مثال کاربردی داشته باشید.
شاید این نمونه هم به دردتون بخوره:
QuickStart

----------


## binboy

ایشون که هنوز شروع به کار نکردن پس میرسیم به ابنکه هنوز مرجع فارسی وجود ندارد.
از Zend Studio استفاده نمی کنم ولی نمونه ای که داده بودید را دانلود کردم. اگر وقتش را کردی یک توضیح از شیوه کار برای این مثال بزن تا فهمش بهتر شود.
با تشکر

----------


## mohan21

با سلام

زند رو دانلود کردم و شروع به نصب و ...
 اما به مشکلی برخوردم که هر کاری کردم رفع نشد ...
 نمونه QuickStart رو هم دانلود کردم اما همون مشکل رو دارم ...
 مقدار APPLICATION_PATH فایل application.ini رو با ادرس اصلی دستی جایگزین کردم. (T:\wamp\www\ZendFrameworkQuickstart-20100208\application)
به فایل php.ini هم مسیر کتابخانه رو دادم ::



> include_path = ".;c:\php\includes;T:\wamp\www\ZendFrameworkQuicks  tart-20100208\library"


وقتی آدرس http://localhost/ZendFrameworkQuicks...0100208/public رو وارد میکنم پیام زیر رو میده ....



> Fatal error: Class 'Zend_Application_Bootstrap_Bootstrap' not found in  t:\wamp\www\zendframeworkquickstart-20100208\application\bootstrap.php on  line 3


چطور باید مشکل رو حل کنم ؟؟؟؟

با تشکر از شما دوستان

----------


## HRezaei

حدس میزنم پوشه ی library تون خالی باشه. تو نمونه دانلودی که  گذاشتم این پوشه خالیه. یا محتویات library از سورس ZF رو کپی کنید این تو؛ یا مسیری که تو فایل ini. دادید عوض کنید.

----------


## mohan21

اما پر هست ....
پروژه من در مسیر T:\wamp\www\ZendFrameworkQuicks  tart-20100208 قرار داره و کتابخانه هم در این آدرس T:\wamp\www\ZendFrameworkQuicks  tart-20100208\library
در فایل php.ini هم بصورت زیر آدرس دهی کردم :::



> include_path = ".;c:\php\includes;T:\wamp\www\ZendFrameworkQu  icks  tart-20100208\library"


همه چی سرجای خودش هست، مشکل چیه؟؟
ایا تنظیمات دیگه ایی باید انجام بشه؟؟
چکار باید کنم؟

----------


## HRezaei

اولا این فاصله ای که تو آدرساتون هست رو (اگه واقعا وجود دارند)حذف کنید،محض احتیاط(...Qu  icks tart... )
ثانیا یه نگاهی به خروجی ()phpinfo بندازید ببینید include_path همونیه که شما ست کردید یا نه؟
ممکنه Application شما آماده واسه autoloading  نباشه، واسه این کار دو خط زیر رو به فایل index.php تون اضافه کنید:
خط 
require_once 'Zend/Application.php';
رو با
require_once "Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance();
عوض کنید
مشخصا فایل library\Zend\Application\Bootstrap\Bootstrap.php\ لود نشده و کلاس Zend_Application_Bootstrap_Bootstrap قابل استفاده و توسعه نیست.

----------


## mohan21

دوست گرامی همچنان همین پیام رو میده، نام پروژه رو به "ZendTest" تغییر دادم ...
دستورات شما رو هم انجام دادم اما نشد ...
محتویات فایل index پوشه public ::

<?php
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
//require_once 'Zend/Application.php';

require_once "Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance();

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

همچنین محتویات فایل application.ini ::



> [production]
> phpSettings.display_startup_errors = 0
> phpSettings.display_errors = 0
> includePaths.library = "http://localhost/ZendTest/library"
> bootstrap.path = "http://localhost/ZendTest/application/Bootstrap.php"
> bootstrap.class = "Bootstrap"
> appnamespace = "Application"
> resources.frontController.controllerDirectory = "http://localhost/ZendTest/application/controllers"
> resources.frontController.params.displayExceptions = 0
> ...


دیگه باید چکار کنم؟؟
چرا حل نمیشه ....

----------


## mohan21

در فایل Application.php، در تابع setOptions سه عنصر از ارایه$options خالی هست ::

$options['config'])
$options['autoloadernamespaces']
$options['autoloaderzfpath']

که وارد سه شرط زیر نمیشه ::

if (!empty($options['config']))
if (!empty($options['autoloadernamespaces']))
if (!empty($options['autoloaderzfpath']))

ایا مشکل از همینآ نیست؟
چطور باید حل کرد؟؟

با تشکــــــــــــــــــر

----------


## HRezaei

شما که مشکلت حل نشده، تشکر واسه چی؟!



> ایا مشکل از همینآ نیست؟


نه. 
شما به خروجی ()phpinfo  سر زدی؟ 
یه فایل مثلا info.php تو پوشه public بساز توش بنویس:
<?php 
echo phpinfo();
?>
خروجیشو بررسی کن. ببین include_path همونیه که تو php.ini دادی؟
با تغییراتی که تاحالا دادی هنوز همون خطا رو میده؟!! (متن کاملشو بزار)
بیبن این فایل
ZendTest\library\Zend\Application\Bootstrap\Bootst  rap.php
 وجود داره؟!!

----------


## mohan21

شما این پست رو خواندید؟



> https://barnamenevis.org/showthread.p...=1#post1174575


بله باز هم همین خطا رو میده ....
این خروجی ()phpinfo  
.;c:\php\includes;T:\wamp\www\ZendTest\library


Fatal error: Class 'Zend_Application_Bootstrap_Bootstrap' not found in  t:\wamp\www\ZendTest\application\bootstrap.php on line 3

----------


## HRezaei

> شما این پست رو خواندید؟


خوندم اما دقت نکردم.
قبلا هم اینو گفته بودید:!



> مقدار APPLICATION_PATH فایل application.ini رو با ادرس اصلی دستی جایگزین کردم. (T:\wamp\www\ZendFrameworkQuickstart-20100208\application)


 نیازی به این جایگزینی نیست. اینجوری که اگه شما اسم پوشه رو عوض کردید صدجا باید عوضش کنید! شما از همون application.ini اصلی (فعلا بدون تغییر ) استفاده کن. اگه مسیر library تو include_path باشه این سمپل هیچ تنظیم و تغییر خاص دیگه ای نمی خواد(با توجه به خطایی که گزارش می کنید)

----------


## decoder2012

*Installing Zend Framework on WAMP Server for Windows* 

My PC MVC development/test configuration is Windows and WampServer
and here are easy install instructions on how I use Zend Framework:

1) download and install Zend Framework by putting the Zend folder in a
   server directory path (mine is wamp\www).  I renamed the current lib
   folder to 'Zend' just to keep it simple.  And the full or minimal
   package works here, but only min is needed for basic examples.

2) add either an include path for the \Zend\library... folder as they
   indicate, or copy the \Zend\library\Zend folder into the same library
   folder with the rest of this app.  The include path in a test index.php
   start-up file will find either one.  Here is an example of that code:
*set_include_path('library'. PATH_SEPARATOR. get_include_path());*

   This is what I added to my *server's* php.ini just for reference:
   include_path = ".;c:\wamp\www\zend\library"
   (not the php.ini in the php directory, if you edit this manually)

3) install your test app folder in the server path.  (I put it in ..\Zend also).

4) start/re-start your test server.

5) then run your test URL something like this in your browser:
*http://localhost/Zend/test/index.php*

Here is the default directory structure I use (based on a prior Quickstart):

\wamp\www\Zend\test...
then:
   ..\application
      ..\controllers
      ..\layouts
      ..\models
      ..\views
   ..\data
      ..\php
      ..\text
      ..\xml
   ..\library (basically empty, where the Zend folder goes if needed)
   ..\public
      ..\css
      ..\js

View example Zend website (AjaMyAjax) with this design...

Now if trying the QuickStart example app, it might take a bit more effort to run.
I got the current version -- which has changed over time -- to work in WAMP Server
by doing these steps:

First, download the QuickStart app and put it in some folder name in *C:\wamp\www.*
I chose to call it: *C:\wamp\www\ZendQuickstart*

Then find this apache server file, edit it, and uncomment the 'Include' as shown below:
*C:\wamp\bin\apache\Apache2.x.xx\conf\httpd.conf*

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Then you need to add something like this to the end of your *httpd-vhosts.conf* file
which is found in *C:\wamp\bin\apache\Apache2.x.xx\conf\extra\*.  
(Of course making any Zend folder name changes you choose to use)

# needed for all WAMP requests that do not match a ServerName 
# or ServerAlias in any <VirtualHost> block
<VirtualHost *:80>
    DocumentRoot /wamp/www
</VirtualHost>
    
<VirtualHost *:80>
    ServerName quickstart.local
    DocumentRoot /wamp/www/ZendQuickstart/public
    SetEnv APPLICATION_ENV "development"         
# (if needed:)
#    <Directory /wamp/www/ZendQuickstart/public>
#        DirectoryIndex index.php
#        AllowOverride All
#        Order allow,deny
#        Allow from all
#    </Directory>
</VirtualHost>

Then I had to go over to my *C:\wamp\www\ZendQuickstart/public folder*
and rename the *.htaccess* file to *.htaccess.old* to avoid server errors...  
Perhaps you can figure out a cleaner way to fix those errors, but this works.

Now stop/restart your WAMP Server and try QuickStart to see if it loads now...
I prefer to run all apps directly, so I use this command line in my browser:
*http://localhost/ZendQuickStart/public/index.php*

IF you get any Zend level errors, try adding this fix I found as user comments
on the Zend site comment page (if no Quickstart errors, they fixed this/it's gone).

In the ..*/application/bootstrap.php* file, add the 'user code...' segment:

    protected function _initDoctype()
    {
        $this->bootstrap('view');
        $view = $this->getResource('view');
        $view->doctype('XHTML1_STRICT');


// user code comment to fix error:
$loader = new Zend_Loader_Autoloader_Resource (array (
'basePath' => APPLICATION_PATH,
'namespace' => 'Application',
));

$loader -> addResourceType ( 'model', 'models', 'Model');
$loader -> addResourceType ( 'form', 'forms', 'Form');

    }
...
(Note I added the last line after a form error similar to the model error
the other user found a fix for -- thank you.)

Hope this helps.  Best of luck.  (also actual _working_ examples here)

For code examples on using Zend Framework with JavaScript AJAX, try
BasicAjax example...

If Zend with PHP cURL instead of AJAX is what you want, try the
BasiccURL example...

For XAMPP/LAMPP Server installation help instead, try my
XAMPP install page...

AjaMyAjax home page...

*Also have you tried fast, free Ubuntu Linux yet, Windows($) users??? 
Get it here: 
 Ubuntu download page* ...

*"Why Ubuntu Linux is better than Windows..."*
or IMO at least worth trying before paying for your next O/S upgrade...

----------


## decoder2012

دوستانت من ایت آموزش رو پیدا کردمن تا حدودی هم باش پیش رفتم اما نشد .
آدرس اصلیش هم اینه : http://ajamyajax.com/zendwamp.html
لطفاً اگر کسی در خصوص نصب این فریم ورک اطلاعاتی داره به زبان فارسی برای ما نیز قرار بده .
دستمون تو حناس
مرسی

----------


## UnnamE

ساده تر از نصب زند من نديدم
مرحله اول:
download / extract به apache root
مرحله دوم:
مرحله دومي نيست...!

----------


## HRezaei

...والسلام!

----------


## Metal Gear Solid

سلام
ببخشید من تمامی ارسال های بالا رو خوندم اما چیزی نفهمیدم
من نرم افزار Zend Studio رو از یکی از سایت های ایرانی دانلود کردم و الان هم توی یکی از درایوهام نصب کردم. حجمش چیزی حدود 700 مگ شد فکر کنم. داخل نرم افزار، لوکال هاست رو نمیشناسه. این پوشه ی Library هم که بالا نوشتند رو من توی پوشه های نصبی برنامه اصلاً ندارم. این پوشه کجا هست!؟
سوال بعدی اینه که این کدهای بالا که نوشتند دوستان رو کجا باید وارد کنم؟ راه ساده تری وجود نداره؟

----------


## alihosseini1365

سلام...
آقایون شرمنده...
کسی می دونه چطوری باید zend framework رو رویه netbeans نصب کردش...
راستش من زند رو رویه نت بینز نصب کردم...لوی هرکاری می کنم چیزی بالا نمیاره... یعنی وقتی ران رو میزنم... و مرورگز باز میشه میگه پورت ۸۰ بسته هستش و از این چیزها...
اگه میشه بگید که چوری باید مشکل رو حل کنم؟؟؟
درضمن بعضی از جاها و مطالب بالا خوندم که باید یه سری تنظیمات رو انجام داد....ولی چیزی سر در نیارودم...
فقط بگید که رویه لینوکس چطوری باید نصب بشه... من ویندوز ندارم...
با تشکر... فقط خواهشا قدم به قدم بگید..فکر کنید من چیزی بلد نیستم.... :دی

----------


## aurora_sepideh

برای یادگیری نصب به لینک زیر برید ، مرحله به مرحله انجام میده ، من خودم از روی همین نصب کردم
http://www.youtube.com/watch?v=wa9o4VZu-NI

----------


## S.O.A.D

نصب زند فریم ورک 2 بر روی xampp
ابتدا فایل  ZendFramework-2.2.5 رو یه جا اکسترکت می کنیم. من توی فولدر xampp، کنار htdocs کپی کردم.
فایل ZendSkeletonApplication رو توی فولدر htdocs اکسترکت می کنیم. من اسم فولدر رو به zend01 تغییر دادم.
توی مسیر xampp>apache>conf>extra فایل httpd-vhosts.conf رو ویرایش می کنیم و یک Virtual Host تعریف می کنیم. 
راحت ترین روش اینه که همون چیزی که هست رو از حالت کامنت خارج کنیم و با توجه به مسیر نصب Xampp ویرایش کنیم.
این سطر رو هم از حالت کامنت خارج کنید: NameVirtualHost *:80

<VirtualHost *:80>
       ServerAdmin info@webarena.ir
    DocumentRoot "C:/xampp/htdocs/zend01/public"
    ServerName zend01.local
    ServerAlias www.zend01.local
	SetEnv ZF2_PATH "C:/xampp/ZendFramework-2.2.5/library"
    ErrorLog "logs/zend01.local-error.log"
    CustomLog "logs/zend01.local-access.log" combined
</VirtualHost>

حالا از مسیر زیر فایل hosts رو ویرایش می کنیم:
c:\Windows\System32\Drivers\etc\
در انتهای فایل دو سطر زیر رو (البته باتوجه به چیزی که توی فایل قبلی نوشتین) اضافه می کنیم:

127.0.0.1	zend01.local
127.0.0.1	www.zend01.local


خب حالا apache رو ریستارت می کنیم. توی مرورگر آدرس رو وارد می کنیم.

----------


## i-php-i

دلیل اینکه باید پوشه liberary این فریک ورک رو توی پوشه lib قرار داد چیه؟ چطور می شه بجای این کار آدرس پوشه liberary رو فریم ورک داد تا فایلها رو اینکلود کنه؟

----------


## Freedon_23

آموزش نصب فریم ورک Zend

----------

