<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="Adobe RoboHelp - www.adobe.com">
<title>Path Variables</title>
<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
<!--
if (navigator.appName !="Netscape")
{   document.write("<link rel='stylesheet' href='default.css'>");}
//-->
</script>
<style>
<!--
body { border-left-style:None; border-right-style:None; border-bottom-style:None; background-color:Transparent; border-top-style:None; }
-->
</style><style type="text/css">
<!--
div.whs1 { float:none; }
img_whs2 { border:none; width:374px; height:247px; float:none; border-style:none; }
table.whs3 { x-cell-content-align:top; width:100%; border-spacing:0px; }
col.whs4 { width:7.093%; }
col.whs5 { width:92.907%; }
tr.whs6 { x-cell-content-align:top; }
td.whs7 { width:7.093%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
p.whs8 { font-size:6pt; }
td.whs9 { width:92.907%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
p.whs10 { font-weight:bold; }
td.whs11 { width:7.093%; padding-right:10px; padding-left:10px; border-left-style:none; border-right-style:none; border-bottom-style:none; }
img_whs12 { border:none; width:28px; height:33px; float:none; border-style:none; }
td.whs13 { width:92.907%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
ol.whs14 { list-style:decimal; }
td.whs15 { width:100%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; }
table.whs16 { x-cell-content-align:top; width:100%; x-condition:Online; border-spacing:0px; }
tr.whs17 { x-cell-content-align:top; height:16px; x-condition:Online; }
td.whs18 { width:7.093%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; border-top-style:none; x-condition:Online; }
td.whs19 { width:92.907%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-top-style:none; x-condition:Online; }
tr.whs20 { x-cell-content-align:top; height:35px; x-condition:Online; }
td.whs21 { width:7.093%; padding-right:10px; padding-left:10px; border-left-style:none; border-right-style:none; border-bottom-style:none; x-condition:Online; }
img_whs22 { border:none; width:28px; height:18px; float:none; x-condition:Online; border-style:none; }
td.whs23 { width:92.907%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; x-condition:Online; }
p.whs24 { font-weight:normal; }
tr.whs25 { x-cell-content-align:top; height:19px; x-condition:Online; }
div.whs26 { width:100%; }
p.whs27 { text-align:right; x-condition:Product, Online; }
p.whs28 { text-align:right; x-condition:Online; }
p.whs29 { text-align:center; x-condition:PDT; text-decoration:underline; }
-->
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
<!--
function reDo() {
  if (innerWidth != origWidth || innerHeight != origHeight)
     location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
	origWidth = innerWidth;
	origHeight = innerHeight;
	onresize = reDo;
}
onerror = null; 
//-->
</script>
<style type="text/css">
<!--
div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
p.WebHelpNavBar { text-align:right; }
-->
</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
<script type="text/javascript" language="javascript" src="whver.js"></script>
<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
<script type="text/javascript" language="javascript1.2" src="whlang.js"></script>
<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
<script type="text/javascript" language="javascript1.2">
<!--
if (window.gbWhTopic)
{
	if (window.setRelStartPage)
	{
	addTocInfo("PDT Help\nReference\nPHP Preferences\nPath Variables Preferences");
addAvenueInfo("Zend Studio for Eclipse Help","Formatter.htm","PHP_Executables.htm");

	}


	if(1)
	{
	
	}

	if (window.setRelStartPage)
	{
	setRelStartPage("IDE_Help.htm");

		autoSync(1);
		sendSyncInfo();
		sendAveInfoOut();
	}

}
else
	if (window.gbIE4)
		document.location.reload();
//-->
</script>
</head>
<body leftmargin="5" topmargin="5" rightmargin="5" bottommargin="5"><script type="text/javascript" language="javascript1.2">
<!--
if (window.writeIntopicBar)
	writeIntopicBar(4);
//-->
</script>
<h1>Path Variables 
 Preferences</h1>
<div class="whs1">
</div>
<p>&nbsp;</p>
<p>The Path Variables preferences page displays a list of your configured 
 path variables and allows you to add or edit them.</p>
<p>&nbsp;</p>
<p>A path variable is a name that is mapped to a specific location on the 
 machine. </p>
<p>By using a path variable, you can share projects containing linked resources 
 with team members without requiring the same directory structure as on 
 your file system.</p>
<p>Include path variables can also be added to a project's include path. 
 </p>
<p>&nbsp;</p>
<p>The Path Variables 
 Preferences page is accessed from Window | Preferences | PHP | Path Variables.</p>
<p class=picture style="x-condition: PDT;"><img src="pathvariables_preferences_pdt.png" x-maintain-ratio="TRUE" width="374px" height="247px" border="0" class="img_whs2"></p>
<table x-use-null-cells cellspacing="0" width="100%" class="whs3">
<col class="whs4">
<col class="whs5">

<tr valign="top" class="whs6">
<td colspan="1" rowspan="1" width="7.093%" class="whs7">
<p class="whs8">&nbsp;</td>
<td colspan="1" rowspan="1" width="92.907%" class="whs9">
<p class="whs10">&nbsp;</td></tr>
<tr valign="top" class="whs6">
<td width="7.093%" class="whs11">
<p class="whs8"><img src="ref_icon.png" x-maintain-ratio="TRUE" alt="Instructions on how to complete a procedure" width="28px" height="33px" border="0" class="img_whs12"></td>
<td width="92.907%" class="whs13">
<p class="whs10">To add a new path variable:</p>
<ol type="1" class="whs14">
	<li style="margin-left: -20px;" class=p><p>Click New.</p></li>
	<li style="margin-left: -20px;" class=p><p>Enter the name of the path.</p></li>
	<li style="margin-left: -20px;" class=p><p>Enter the location to which 
 the path should point. </p></li>
	<li style="margin-left: -20px;" class=p><p>Click OK.</p></li>
</ol></td></tr>
<tr valign="top" class="whs6">
<td rowspan="1" colspan="2" width="100%" class="whs15">
<p>The Path Variable will be added to the list.</td>
</tr>
</table>
<p>&nbsp;</p>
<p>Click OK to apply your settings.</p>
<table x-use-null-cells cellspacing="0" width="100%" class="whs16">
<col class="whs4">
<col class="whs5">

<tr valign="top" class="whs17"><td colspan="1" rowspan="1" width="7.093%" class="whs18">
<p class="whs8">&nbsp;</td>
<td colspan="1" rowspan="1" width="92.907%" class="whs19">
<p>&nbsp;</td></tr>
<tr valign="top" class="whs20"><td width="7.093%" class="whs21">
<p class="whs8"><img src="link_icon.png" x-maintain-ratio="TRUE" alt="Related Links" width="28px" height="18px" border="0" class="img_whs22"></td>
<td width="92.907%" class="whs23">
<p class="whs10">Related Links:</p>
<p class="whs24"><a href="preferences.htm">PHP Preferences</a></td></tr>
<tr valign="top" class="whs25"><td colspan="1" rowspan="1" width="7.093%" class="whs21">
<p class="whs8">&nbsp;</td>
<td colspan="1" rowspan="1" width="92.907%" class="whs23">
<p>&nbsp;</td></tr>
</table>
<div placeholder id="footer" class="whs26">
 <p align="right" class="whs27"><span 
 style="background-color: #ffffff; x-condition: Online, Product;">V</span>iew 
 the Zend Product <a href="http://www.zend.com/en/resources/zend-documentation/zend-studio/zend-studio.htm" 
 style="color: #000000; x-condition: Product, Online;">Online Documentation</a> 
 for the most up-to-date information.</p>
 <p align="right" class="whs28"><span style="background-color: #ffffff;"><a 
 href="javascript:crlf=&quot;
&quot;;h=location.href;t=document.title;e = &quot;&quot; + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (e!=null) location=&quot;mailto:documentation@zend.com&quot; + &quot;?Subject= Feedback on &quot; + escape(t) + &quot;&amp;Body=&quot; + escape(e).replace(/ /g, &quot;+&quot;) + crlf + &quot; &quot;; void 0" 
 style="x-condition: Online;">Submit Documentation Feedback</a></span></p>
 <p align="center" class="whs29">PHP Development 
 Tools</p>
 </div>
<script type="text/javascript" language="javascript1.2">
<!--
highlightSearch();
if (window.writeIntopicBar)
	writeIntopicBar(0);
if(0)
{

}
//-->
</script>
</body>
</html>
