New Community Forums are coming. Watch this space for news.
Subscribe: RSS
  • Thanks for the kind words. I'm fairly certain that CreateXpdoClasses isn't causing those errors because it doesn't call any processors.

    The way 2.7.0 works, the errors can be thrown for extras that are not even executing. My advice is to turn off the log_deprecated System Setting until MODX 2.7.1 is released. That should quiet most of the errors.

    I have a blog article in the works about how to tell what is triggering the errors but it won't be out for some time.
      Get my Book: MODX:The Official Guide
      MODX info for everyone: http://bobsguides.com/MODx.html
      My MODX Extras
      Bob's Guides is now hosted at A2 MODX Hosting
    • https://github.com/modxcms/Quip/issues/25 is more or less the Quip issue.

      The following assumes elementary competence, that is, you can SSH into the server, and run the commands, and you know where your directories are located in that file system.

      There's no real need to overthink the cause, since the file that is creating the issue must contain the class name string in the deprecation warning.

      Given warnings:

      [2019-02-01 11:13:48] (ERROR in xPDO::getService @ /modx-core/xpdo/xpdo.class.php : 1234) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.
      [2019-02-01 11:13:48] (ERROR in modRestCurlClient::__construct @ /modx-core/model/modx/rest/modrestcurlclient.class.php : 26) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.


      you can find the sources with a simple command line search for the class name, in this case, modRestClient (assume main folder modx is in one location, and your site is in 'site' folder).

      grep -snR 'modRestClient' modx/ site/ | grep -v error.log


      if your modx folder is in your main site folder, you'd just do:

      grep -snR 'modRestClient' site/ | grep -v error.log


      one level below document root. Or ./ if in document root.

      If you are getting this error, that's where you find the source, just get the main classname, and plug it into the search. Windows syntax would be different, can't help there.

      In our case only Quip has the deprecation trigger of all the extensions. We are getting the flatfile thing, but that is apparently going away in 2.7.1.

      The above returns the following, but you can ignore the actual class files since we're only interested in what is creating that class, in this case stopforumspam.class.php:

      components/quip/model/stopforumspam/stopforumspam.class.php:71:     * @return modRestClient/boolean
      components/quip/model/stopforumspam/stopforumspam.class.php:75:            $this->modx->getService('rest','rest.modRestClient');
      docs/changelog.txt:2019:- Fixed missing options array call in modRestClient, isArray call in modRestCurlClient
      docs/changelog.txt:2200:- Cleaned up and better abstracted modRestClient and modRestCurlClient code
      model/modx/rest/modrestsockclient.class.php:19:class modRestSockClient extends modRestClient {
      model/modx/rest/modrestsockclient.class.php:21:     * Extends modRestClient::request to provide socket-specific request
      model/modx/rest/modrestsockclient.class.php:38:        $purl['path'] = !empty($purl['path']) ? $purl['path'] : $this->config[modRestClient::OPT_PATH];
      model/modx/rest/modrestsockclient.class.php:39:        $purl['port'] = !empty($purl['port']) ? $purl['port'] : $this->config[modRestClient::OPT_PORT];
      model/modx/rest/modrestsockclient.class.php:53:                ."User-Agent: ".$this->config[modRestClient::OPT_USERAGENT]."\r\n"
      model/modx/rest/modrestcurlclient.class.php:20:class modRestCurlClient extends modRestClient {
      model/modx/rest/modrestcurlclient.class.php:31:     * Extends modRestClient::request to provide cURL specific request handling
      model/modx/rest/modrestcurlclient.class.php:70:     * @see modRestClient::request for parameter documentation.
      model/modx/rest/modrestcurlclient.class.php:124:        curl_setopt($ch, CURLOPT_TIMEOUT, !empty($options['curlopt_timeout']) ? $options['curlopt_timeout'] : $this->config[modRestClient::OPT_TIMEOUT]);
      model/modx/rest/modrestcurlclient.class.php:128:        curl_setopt($ch, CURLOPT_USERAGENT, !empty($options['curlopt_useragent']) ? $options['curlopt_useragent'] : $this->config[modRestClient::OPT_USERAGENT]);
      model/modx/rest/modrestcurlclient.class.php:159:        if (!empty($options[modRestClient::OPT_USERPWD])) {
      model/modx/rest/modrestcurlclient.class.php:160:            $options[modRestClient::OPT_AUTHTYPE] = $this->modx->getOption(modRestClient::OPT_AUTHTYPE,$options,'BASIC');
      model/modx/rest/modrestcurlclient.class.php:161:            switch ($options[modRestClient::OPT_AUTHTYPE]) {
      model/modx/rest/modrestcurlclient.class.php:169:            $auth = curl_setopt($ch, CURLOPT_USERPWD, !empty($options[modRestClient::OPT_USERPWD]) ? $options[modRestClient::OPT_USERPWD] : 'username:password');
      model/modx/rest/modrestclient.class.php:19:class modRestClient {
      model/modx/rest/modrestclient.class.php:60:     * @var modRestClient $conn The client connection instance to use.
      model/modx/rest/modrestclient.class.php:82:     * The constructor for the modRestClient class. Assigns a modX instance
      model/modx/rest/modrestclient.class.php:87:     * @return modRestClient
      model/modx/rest/modrestclient.class.php:92:            modRestClient::OPT_PORT => 80,
      model/modx/rest/modrestclient.class.php:93:            modRestClient::OPT_TIMEOUT => 30,
      model/modx/rest/modrestclient.class.php:94:            modRestClient::OPT_PATH => '/',
      model/modx/rest/modrestclient.class.php:95:            modRestClient::OPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)"
      model/modx/rest/modrestclient.class.php:141:        $responseClass = $this->modx->getOption(modRestClient::OPT_RESPONSE_CLASS,$this->config,'modRestResponse');
      model/modx/rest/modrestclient.class.php:214:     * @param modRestClient &$client A reference to the modRestClient instance.
      model/modx/rest/modrestclient.class.php:219:    function __construct(modRestClient &$client, $response, $responseType = 'xml') {
      model/modx/transport/modtransportprovider.class.php:14: * @uses modRestClient This REST implementation is used to communicate with a
      model/modx/transport/modtransportprovider.class.php:327:        /** @var modRestClient $rest */
      model/modx/transport/modtransportprovider.class.php:328:        $rest = $this->xpdo->getService('rest','rest.modRestClient');
      model/modx/transport/modtransportprovider.class.php:413:     * @return modRestClient|bool A REST client instance, or FALSE.
      model/modx/transport/modtransportprovider.class.php:417:            $this->xpdo->getService('rest','rest.modRestClient');
      model/modx/modx.class.php:214:     * @var modRestClient $rest


      [ed. note: lizardx last edited this post 2 weeks, 2 days ago.]