PHPOffice / PHPWord

A pure PHP library for reading and writing word processing documents
https://phpoffice.github.io/PHPWord/
Other
7.25k stars 2.69k forks source link

PHPWord_DocumentProperties not found #155

Closed BillVA closed 10 years ago

BillVA commented 10 years ago

I've been running version 0.6.3 of PHPWord for a while now and have it doing mostly what I want it to do, but I see there are new features in version 0.8 that would completely do what I need. I downloaded the zip file from GitHub and replaced my /classes folder with the new /classes folder and even with the most basic of test files, I immediately get this error: Fatal error: Class 'PHPWord_DocumentProperties' not found in E:\Inetpub\wwwroot\mysite\Classes\PHPWord.php on line 99.

gabrielbull commented 10 years ago

You need to register the Autoloader:

require_once "Classes\PHPWord\Autoloader.php";
PHPWord_Autoloader::register();
ivanlanin commented 10 years ago

That's strange. Autoloader supposed to load automatically when you include PHPWord.php, doesn't it?

BillVA commented 10 years ago

gabrielbull, thanks, but still not there. Here's my stripped down page that gets the same error:

<?php
require_once 'Classes/PHPWord.php';
require_once "Classes/PHPWord/Autoloader.php";
PHPWord_Autoloader::register();

// New Word Document
$PHPWord = new PHPWord();

// New portrait section
$section = $PHPWord->createSection(array('borderColor'=>'00FF00', 'borderSize'=>12));
$section->addText('I am placed on a default section.');

// Save File
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('Section.docx');
?>

Am I registering the autoloader incorrectly?

gabrielbull commented 10 years ago

Works fine for me, are you sure you have all the files in the Classes directory?

gabrielbull commented 10 years ago

Can you try with this autoloader file? Replace the content of Classes/PHPWord/Autoloader.php with this:

<?php
/**
 * PHPWord
 *
 * Copyright (c) 2014 PHPWord
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category   PHPWord
 * @package    PHPWord
 * @copyright  Copyright (c) 2014 PHPWord
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 * @version    0.8.0
 */

if (!defined('PHPWORD_BASE_PATH')) {
    define('PHPWORD_BASE_PATH', realpath(__DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR);
}

/**
 * Class PHPWord_Autoloader
 *
 * TODO: remove legacy autoloader once everything is moved to namespaces
 */
class PHPWord_Autoloader
{
    const PREFIX = 'PhpOffice\\PhpWord';

    /**
     * Register the autoloader
     *
     * @return void
     */
    public static function register()
    {
        spl_autoload_register(array('PHPWord_Autoloader', 'load')); // Legacy
        spl_autoload_register(array(new self, 'autoload')); // PSR-4
    }

    /**
     * Autoloader
     *
     * @param string $strObjectName
     * @return mixed
     */
    public static function load($strObjectName)
    {
        $strObjectFilePath = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $strObjectName) . '.php';
        if (file_exists($strObjectFilePath) && is_readable($strObjectFilePath)) {
            require_once $strObjectFilePath;
            return true;
        }

        return null;
    }

    /**
     * Autoloader
     *
     * @param string
     */
    public static function autoload($class)
    {
        $prefixLength = strlen(self::PREFIX);
        if (0 === strncmp(self::PREFIX, $class, $prefixLength)) {
            $file = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, $prefixLength));
            $file = realpath(__DIR__ . (empty($file) ? '' : DIRECTORY_SEPARATOR) . $file . '.php');
            if (file_exists($file)) {
                require_once $file;
            }
        }
    }
}
BillVA commented 10 years ago

Yes, I downloaded everything. If you're feeling generous, can you zip up your classes folder that apparently is working and post it here?

gabrielbull commented 10 years ago

Also what version of PHP are you using? Can you do a phpinfo(); and paste it here as well?

BillVA commented 10 years ago

I replaced the autoloader with the above code and same error.

gabrielbull commented 10 years ago

Here is my working directory: https://dl.dropboxusercontent.com/u/25609258/test.zip

BillVA commented 10 years ago

Here is my phpInfo

PHP Logo
PHP Version 5.2.5

System  Windows NT SRV194 5.2 build 3790
Build Date  Nov 8 2007 23:18:08
Configure Command   cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"
Server API  ISAPI
Virtual Directory Support   enabled
Configuration File (php.ini) Path   C:\WINDOWS
Loaded Configuration File   C:\PHP5\php.ini
PHP API 20041225
PHP Extension   20060613
Zend Extension  220060519
Debug Build no
Thread Safety   enabled
Zend Memory Manager enabled
IPv6 Support    enabled
Registered PHP Streams  php, file, data, http, ftp, compress.zlib, zip
Registered Stream Socket Transports tcp, udp
Registered Stream Filters   convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, zlib.*

Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

PHP Credits

Configuration

PHP Core

Directive   Local Value Master Value
allow_call_time_pass_reference  Off Off
allow_url_fopen On  On
allow_url_include   Off Off
always_populate_raw_post_data   Off Off
arg_separator.input &   &
arg_separator.output    &   &
asp_tags    Off Off
auto_append_file    no value    no value
auto_globals_jit    On  On
auto_prepend_file   no value    no value
browscap    no value    no value
default_charset no value    no value
default_mimetype    text/html   text/html
define_syslog_variables Off Off
disable_classes no value    no value
disable_functions   no value    no value
display_errors  On  On
display_startup_errors  Off Off
doc_root    no value    no value
docref_ext  no value    no value
docref_root no value    no value
enable_dl   On  On
error_append_string no value    no value
error_log   no value    no value
error_prepend_string    no value    no value
error_reporting 6135    6135
expose_php  On  On
extension_dir   ./ext   ./ext
file_uploads    On  On
highlight.bg    #FFFFFF #FFFFFF
highlight.comment   #FF8000 #FF8000
highlight.default   #0000BB #0000BB
highlight.html  #000000 #000000
highlight.keyword   #007700 #007700
highlight.string    #DD0000 #DD0000
html_errors On  On
ignore_repeated_errors  Off Off
ignore_repeated_source  Off Off
ignore_user_abort   Off Off
implicit_flush  Off Off
include_path    .;C:\php5\pear  .;C:\php5\pear
log_errors  On  On
log_errors_max_len  1024    1024
magic_quotes_gpc    Off Off
magic_quotes_runtime    Off Off
magic_quotes_sybase Off Off
mail.force_extra_parameters no value    no value
max_execution_time  60  60
max_input_nesting_level 64  64
max_input_time  60  60
memory_limit    4048M   4048M
open_basedir    no value    no value
output_buffering    1   1
output_handler  no value    no value
post_max_size   100M    100M
precision   14  14
realpath_cache_size 16K 16K
realpath_cache_ttl  120 120
register_argc_argv  Off Off
register_globals    Off Off
register_long_arrays    Off Off
report_memleaks On  On
report_zend_debug   On  On
safe_mode   Off Off
safe_mode_exec_dir  no value    no value
safe_mode_gid   Off Off
safe_mode_include_dir   no value    no value
sendmail_from   no value    no value
sendmail_path   no value    no value
serialize_precision 100 100
short_open_tag  Off Off
SMTP    localhost   localhost
smtp_port   25  25
sql.safe_mode   Off Off
track_errors    Off Off
unserialize_callback_func   no value    no value
upload_max_filesize 100M    100M
upload_tmp_dir  no value    no value
user_dir    no value    no value
variables_order GPCS    GPCS
xmlrpc_error_number 0   0
xmlrpc_errors   Off Off
y2k_compliance  On  On
zend.ze1_compatibility_mode Off Off

bcmath

BCMath support  enabled

calendar

Calendar support    enabled

com_dotnet

COM support enabled
DCOM support    disabled
.Net support    enabled

Directive   Local Value Master Value
com.allow_dcom  0   0
com.autoregister_casesensitive  1   1
com.autoregister_typelib    0   0
com.autoregister_verbose    0   0
com.code_page   no value    no value
com.typelib_file    no value    no value

ctype

ctype functions enabled

date

date/time support   enabled
"Olson" Timezone Database Version   2007.9
Timezone Database   internal
Default timezone    America/New_York

Directive   Local Value Master Value
date.default_latitude   31.7667 31.7667
date.default_longitude  35.2333 35.2333
date.sunrise_zenith 90.583333   90.583333
date.sunset_zenith  90.583333   90.583333
date.timezone   no value    no value

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version  2.6.26
HTML Support    enabled
XPath Support   enabled
XPointer Support    enabled
Schema Support  enabled
RelaxNG Support enabled

filter

Input Validation and Filtering  enabled
Revision    $Revision: 1.52.2.39 $

Directive   Local Value Master Value
filter.default  unsafe_raw  unsafe_raw
filter.default_flags    no value    no value

ftp

FTP support enabled

gd

GD Support  enabled
GD Version  bundled (2.0.34 compatible)
FreeType Support    enabled
FreeType Linkage    with freetype
FreeType Version    2.1.9
T1Lib Support   enabled
GIF Read Support    enabled
GIF Create Support  enabled
JPG Support enabled
PNG Support enabled
WBMP Support    enabled
XBM Support enabled

hash

hash support    enabled
Hashing Engines md2 md4 md5 sha1 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru gost adler32 crc32 crc32b haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

iconv

iconv support   enabled
iconv implementation    "libiconv"
iconv library version   1.9

Directive   Local Value Master Value
iconv.input_encoding    ISO-8859-1  ISO-8859-1
iconv.internal_encoding ISO-8859-1  ISO-8859-1
iconv.output_encoding   ISO-8859-1  ISO-8859-1

ISAPI

json

json support    enabled
json version    1.2.1

libxml

libXML support  active
libXML Version  2.6.26
libXML streams  enabled

mbstring

Multibyte Support   enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support  enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive   Local Value Master Value
mbstring.detect_order   no value    no value
mbstring.encoding_translation   Off Off
mbstring.func_overload  0   0
mbstring.http_input pass    pass
mbstring.http_output    pass    pass
mbstring.internal_encoding  no value    no value
mbstring.language   neutral neutral
mbstring.strict_detection   Off Off
mbstring.substitute_character   no value    no value

mcrypt

mcrypt support  enabled
Version 2.5.7
Api No  20021217
Supported ciphers   cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Supported modes cbc cfb ctr ecb ncfb nofb ofb stream

Directive   Local Value Master Value
mcrypt.algorithms_dir   no value    no value
mcrypt.modes_dir    no value    no value

mssql

MSSQL Support   enabled
Active Persistent Links 0
Active Links    0
Library version 7.0

Directive   Local Value Master Value
mssql.allow_persistent  On  On
mssql.batchsize 0   0
mssql.compatability_mode    Off Off
mssql.connect_timeout   5   5
mssql.datetimeconvert   On  On
mssql.max_links Unlimited   Unlimited
mssql.max_persistent    Unlimited   Unlimited
mssql.max_procs Unlimited   Unlimited
mssql.min_error_severity    10  10
mssql.min_message_severity  10  10
mssql.secure_connection Off Off
mssql.textlimit Server default  Server default
mssql.textsize  Server default  Server default
mssql.timeout   60  60

odbc

ODBC Support    enabled
Active Persistent Links 0
Active Links    0
ODBC library    Win32

Directive   Local Value Master Value
odbc.allow_persistent   On  On
odbc.check_persistent   On  On
odbc.default_db no value    no value
odbc.default_pw no value    no value
odbc.default_user   no value    no value
odbc.defaultbinmode return as is    return as is
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
odbc.max_links  Unlimited   Unlimited
odbc.max_persistent Unlimited   Unlimited

pcre

PCRE (Perl Compatible Regular Expressions) Support  enabled
PCRE Library Version    7.3 2007-08-28

Directive   Local Value Master Value
pcre.backtrack_limit    100000  100000
pcre.recursion_limit    100000  100000

PDO

PDO support enabled
PDO drivers firebird, mssql, mysql, odbc, pgsql, sqlite

PDO_Firebird

PDO Driver for Firebird/InterBase   enabled

pdo_mssql

PDO Driver for MSSQL DB-lib enabled
Flavour MSSQL_70

pdo_mysql

PDO Driver for MySQL, client library version    5.0.45

PDO_ODBC

PDO Driver for ODBC (Win32) enabled
ODBC Connection Pooling Enabled, strict matching

pdo_pgsql

PDO Driver for PostgreSQL   enabled
PostgreSQL(libpq) Version   8.2.3
Module version  1.0.2
Revision     $Id: pdo_pgsql.c,v 1.7.2.11.2.1 2007/01/01 09:36:05 sebastian Exp $

pdo_sqlite

PDO Driver for SQLite 3.x   enabled
PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $
SQLite Library  3.3.17undefined

Reflection

Reflection  enabled
Version $Id: php_reflection.c,v 1.164.2.33.2.47 2007/10/28 13:47:14 iliaa Exp $

session

Session Support enabled
Registered save handlers    files user
Registered serializer handlers  php php_binary wddx

Directive   Local Value Master Value
session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
session.cache_expire    360 360
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    no value    no value
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  14400   14400
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   no value    no value
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    Off Off
session.use_trans_sid   0   0

SimpleXML

Simplexml support   enabled
Revision    $Revision: 1.151.2.22.2.35 $
Schema support  enabled

SPL

SPL support enabled
Interfaces  Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, DirectoryIterator, DomainException, EmptyIterator, FilterIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RegexIterator, RuntimeException, SimpleXMLIterator, SplFileInfo, SplFileObject, SplObjectStorage, SplTempFileObject, UnderflowException, UnexpectedValueException

standard

Regex Library   Bundled library enabled
Dynamic Library Support enabled
Internal Sendmail Support for Windows   enabled

Directive   Local Value Master Value
assert.active   1   1
assert.bail 0   0
assert.callback no value    no value
assert.quiet_eval   0   0
assert.warning  1   1
auto_detect_line_endings    0   0
default_socket_timeout  60  60
safe_mode_allowed_env_vars  PHP_    PHP_
safe_mode_protected_env_vars    LD_LIBRARY_PATH LD_LIBRARY_PATH
url_rewriter.tags   a=href,area=href,frame=src,input=src,form=fakeentry a=href,area=href,frame=src,input=src,form=fakeentry
user_agent  no value    no value

tokenizer

Tokenizer Support   enabled

wddx

WDDX Support    enabled
WDDX Session Serializer enabled

xml

XML Support active
XML Namespace Support   active
libxml2 Version 2.6.26

xmlreader

XMLReader   enabled

xmlrpc

core library version    xmlrpc-epi v. 0.51
php extension version   0.51
author  Dan Libby
homepage    http://xmlrpc-epi.sourceforge.net
open sourced by Epinions.com

xmlwriter

XMLWriter   enabled

xsl

XSL enabled
libxslt Version 1.1.17
libxslt compiled against libxml Version 2.6.26
EXSLT   enabled
libexslt Version    0.8.13

zip

Zip enabled
Extension Version   $Id: php_zip.c,v 1.1.2.38 2007/08/06 22:02:32 bjori Exp $
Zip version 2.0.0
Libzip version  0.7.1

zlib

ZLib Support    enabled
Stream Wrapper support  compress.zlib://
Stream Filter support   zlib.inflate, zlib.deflate
Compiled Version    1.2.3
Linked Version  1.2.3

Directive   Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level   -1  -1
zlib.output_handler no value    no value

Additional Modules

Module Name

Environment

Variable    Value
ALLUSERSPROFILE C:\Documents and Settings\All Users
ClusterLog  C:\WINDOWS\Cluster\cluster.log
CommonProgramFiles  C:\Program Files\Common Files
COMPUTERNAME    SRV194
ComSpec C:\WINDOWS\system32\cmd.exe
DEFLOGDIR   C:\Documents and Settings\All Users\Application Data\McAfee\DesktopProtection
FP_NO_HOST_CHECK    NO
NUMBER_OF_PROCESSORS    4
OS  Windows_NT
Path    c:\program files\imagemagick-6.4.0-q16;C:\PHP5;E:\CFusionMX7\verity\k2\_nti40\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PHPRC   C:\PHP5
PROCESSOR_ARCHITECTURE  x86
PROCESSOR_IDENTIFIER    x86 Family 15 Model 4 Stepping 3, GenuineIntel
PROCESSOR_LEVEL 15
PROCESSOR_REVISION  0403
ProgramFiles    C:\Program Files
SystemDrive C:
SystemRoot  C:\WINDOWS
TEMP    C:\WINDOWS\TEMP
TMP C:\WINDOWS\TEMP
USERPROFILE C:\Documents and Settings\Default User
VERITY_CFG  E:\CFusionMX7\verity\k2\common\verity.cfg
VSEDEFLOGDIR    C:\Documents and Settings\All Users\Application Data\McAfee\DesktopProtection
windir  C:\WINDOWS
gabrielbull commented 10 years ago

PHP 5.2 is no longer supported, you need to upgrade to PHP 5.3 or use a legacy version of PHPWord

BillVA commented 10 years ago

Oh crap, sorry about this guys. I'll see about upgrading.

ivanlanin commented 10 years ago

There's a lot new features that you can get from PHP 5.3. You should really consider upgrading. It's been around since 2009, but I just started to move to 5.3 since I changed my hosting provider, which is on early 2013 :)