mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-20 21:50:49 +01:00
109 lines
3.5 KiB
HTML
109 lines
3.5 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.7.4">
|
||
|
<TITLE>phpgwapi - VFS Class: Basics</TITLE>
|
||
|
<LINK HREF="vfs-3.html" REL=next>
|
||
|
<LINK HREF="vfs-1.html" REL=previous>
|
||
|
<LINK HREF="vfs.html#toc2" REL=contents>
|
||
|
</HEAD>
|
||
|
<BODY>
|
||
|
<A HREF="vfs-3.html">Next</A>
|
||
|
<A HREF="vfs-1.html">Previous</A>
|
||
|
<A HREF="vfs.html#toc2">Contents</A>
|
||
|
<HR>
|
||
|
<H2><A NAME="sec:basics"></A> <A NAME="s2">2.</A> <A HREF="vfs.html#toc2">Basics</A></H2>
|
||
|
|
||
|
<H2><A NAME="sec:prerequisites"></A> <A NAME="ss2.1">2.1</A> <A HREF="vfs.html#toc2.1">Prerequisites</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>You must explicitly enable the VFS class. To do this, set "enable_vfs_class"
|
||
|
to True in $phpgw_info["flags"]. An example:</P>
|
||
|
<P>
|
||
|
<PRE>
|
||
|
$phpgw_info["flags"] = array("currentapp" => "phpwebhosting",
|
||
|
"noheader" => False,
|
||
|
"noappheader" => False,
|
||
|
"enable_vfs_class" => True,
|
||
|
"enable_browser_class" => True);
|
||
|
</PRE>
|
||
|
</P>
|
||
|
<H2><A NAME="sec:concepts"></A> <A NAME="ss2.2">2.2</A> <A HREF="vfs.html#toc2.2">Concepts</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>The VFS in located in phpgwapi/inc/class.vfs.inc.php. You can look over
|
||
|
it, but I don't suggest trying to understand how it works. It isn't necessary
|
||
|
to know its internals to use it, but you may find the inline comments helpful.
|
||
|
The basic things to keep in mind:</P>
|
||
|
<P>
|
||
|
<UL>
|
||
|
<LI>Files and directories are synonymous in almost all cases</LI>
|
||
|
</UL>
|
||
|
</P>
|
||
|
<P>
|
||
|
<PRE>
|
||
|
$phpgw->vfs->mv ("file1", "dir/file2");
|
||
|
$phpgw->vfs->mv ("dir1", "dir/dir1");
|
||
|
$phpgw->vfs->rm ("file");
|
||
|
$phpgw->vfs->rm ("dir");
|
||
|
</PRE>
|
||
|
</P>
|
||
|
<P>All work as you would except them to. The major exception is:</P>
|
||
|
<P>
|
||
|
<PRE>
|
||
|
$phpgw->vfs->touch ("file");
|
||
|
</PRE>
|
||
|
</P>
|
||
|
<P>vs.</P>
|
||
|
<P>
|
||
|
<PRE>
|
||
|
$phpgw->vfs->mkdir ("dir");
|
||
|
</PRE>
|
||
|
</P>
|
||
|
<P>
|
||
|
<UL>
|
||
|
<LI>Users and groups and synonymous</LI>
|
||
|
</UL>
|
||
|
</P>
|
||
|
<P>As far as the actual paths are concerned, users and groups are the same.
|
||
|
The VFS has no built in ACL support, so /home/username works the same as /home/groupname.
|
||
|
See the note on AC L support in the Notes section.</P>
|
||
|
<P>
|
||
|
<UL>
|
||
|
<LI>You should never have to know the real path of files</LI>
|
||
|
</UL>
|
||
|
</P>
|
||
|
<P>One of the VFS's responsibilities is to translate paths for you. While
|
||
|
you certainly <EM>can</EM> operate using full paths, it is much simpler to use the virtual
|
||
|
paths. For example, instead of using:</P>
|
||
|
<P>
|
||
|
<PRE>
|
||
|
$phpgw->vfs->cp ("/var/www/phpgroupware/files/home/user/file1", "/var/www/phpgroupware/files/home/user/file2", array (RELATIVE_NONE|VFS_REAL, RELATIVE_NONE|VFS_REAL));
|
||
|
</PRE>
|
||
|
</P>
|
||
|
<P>you might use</P>
|
||
|
<P>
|
||
|
<PRE>
|
||
|
$phpgw->vfs->cp ("/home/user/file1", "/home/user/file2", array (RELATIVE_NONE, RELATIVE_NONE));
|
||
|
</PRE>
|
||
|
</P>
|
||
|
<P>(We'll get to the RELATIVE's in a minute.)</P>
|
||
|
<P>Site administrators should be able to move their files dir around on their
|
||
|
system and know that everything will continue to work smoothly.</P>
|
||
|
<P>
|
||
|
<UL>
|
||
|
<LI>Relativity is <EM>vital</EM></LI>
|
||
|
</UL>
|
||
|
</P>
|
||
|
<P>Relativity is a new feature in the VFS, and its importance cannot be stressed
|
||
|
enough. It will make your life much easier, especially for file system intensive
|
||
|
applications, but it will take some getting used to. If something doesn't work
|
||
|
right the first time, chances are great it has to do with incorrect relativity
|
||
|
settings. We will deal with relativity in depth in the Relativity section.</P>
|
||
|
<HR>
|
||
|
<A HREF="vfs-3.html">Next</A>
|
||
|
<A HREF="vfs-1.html">Previous</A>
|
||
|
<A HREF="vfs.html#toc2">Contents</A>
|
||
|
</BODY>
|
||
|
</HTML>
|